ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

CFML

作者 jcberquist ALL

CFML (ColdFusion和Lucee)为Sublime Text的软件包

详细信息

  • 0.30.6
    0.29.3
  • github.com
  • github.com
  • 3年前
  • 2小时前
  • 9年前

安装次数

  • 总次数 20K
  • Win 15K
  • Mac 4K
  • Linux 1K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 8 5 0 2 5 7 3 9 3 1 0 3 5 3 6 2 0 0 2 6 7 4 3 2 0 8 6 10 4 9 0 1 7 4 2 33 5 0 0 4 3 3 6 9 5 3
Mac 0 3 0 0 1 0 1 1 2 0 0 1 1 4 0 2 0 0 1 0 1 1 2 0 0 0 1 2 0 0 0 0 3 0 1 0 0 0 0 1 0 0 0 0 1 0
Linux 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0

说明文档

源代码
raw.githubusercontent.com

Sublime Text的CFML软件包

该软件包提供了在Sublime Text中使用CFML(ColdFusion标记语言)的支持。它包括语法高亮、函数和标签完成以及内联文档。它还包含许多其他功能,请参见下面的完整列表。

您可以通过Package Control安装此软件包。软件包名称为CFML。安装后应重启Sublime Text。也可以进行手动安装。有关这些选项的更多信息,请参阅下面的安装部分。

致谢

以下软件包被用于此软件包的开发

CFScript语法基于Thomas Smith(@Thom1729)在官方JavaScript语法上所做的工作

特别感谢来自@foundeocfdocs.org的功能和标签数据,等等。也感谢@mjhagen帮助我启动此软件包。

目录

安装

通过Package Control

首先确保已安装Package Control。Sublime Text的较新版本包括安装Package Control的菜单选项和命令面板输入。您还可以按照https://packagecontrol.sublime.net.cn/installation上的说明来安装它。

打开命令面板(Windows上的CTRL+SHIFT+P,Mac上的CMD+SHIFT+P),选择Package Control: Install Package

等待列表打开并找到CFML条目(副标题为该GitHub仓库 github.com/jcberquist/sublimetext-cfml),然后选择它进行安装。

重启Sublime Text。

Package Control将自动为您保持CFML包的更新。

手动安装

首先找到您的Sublime Text包目录。这可以通过在Sublime Text中打开命令面板(Windows上的CTRL+SHIFT+P,Mac上的CMD+SHIFT+P)并运行首选项:浏览包来完成。

在Windows上通常是这样的

C:\Users\Username\AppData\Roaming\Sublime Text\Packages\

在Mac上通常是这样的

/Users/Username/Library/Application Support/Sublime Text/Packages/

通过Git

打开终端或命令提示符,并通过cd进入您的包目录,然后运行

git clone https://github.com/jcberquist/sublimetext-cfml.git ./CFML

重启Sublime Text。

随该存储库的更改和包的更新,只需在您安装包的文件夹中运行以下命令即可使您的包副本保持最新

git pull origin master

通过ZIP下载

使用下载ZIP选项将存储库的zip文件下载到您的计算机。(master分支zip文件位于https://github.com/jcberquist/sublimetext-cfml/archive/master.zip)。解压此zip文件,并将结果存储库文件夹的内容复制到Sublime Text包目录中名为CFML的子目录中。

重启Sublime Text。

随着该存储库的更改和包的更新,您需要重复此过程(用旧内容替换CFML子目录中的内容)以使您的包副本保持最新。

设置

有若干设置文件,您应该了解它们,因为它们控制了包的大部分功能。访问每个文件有两种方式,一种是通过菜单,另一种是通过命令面板,您可以通过Windows上的CTRL+SHIFT+P(Mac上的CMD+SHIFT+P)打开它。

包设置

您可以通过菜单下的包设置 -> CFML -> 设置或通过命令面板:CFML: 设置访问包设置。要覆盖任何这些设置,请使用用户包设置文件。(默认设置和用户设置并排打开。)

项目设置

某些设置也可以(或仅)按项目设置。这些设置控制了包在给定项目上的行为。您可以从菜单下的项目 -> 编辑项目或通过命令面板:项目: 编辑项目访问和编辑项目文件。(这些只有在您保存了项目后才能访问:项目 -> 另存为项目项目: 另存为。)

绑定

键盘和鼠标绑定文件可在菜单下的包设置 -> CFML -> 键绑定包设置 -> CFML -> 鼠标绑定中找到。或者通过命令面板在CFML: 键绑定CFML: 鼠标绑定下。默认设置和用户设置并排打开。

完成

包括对标签和标签属性、内置函数和成员函数的完成。还包括对Application.cfc设置和方法的范围完成。

对于内置函数,有三种完成样式。这由一个包设置控制,即cfml_bif_completions,它可以设置为以下三种选项之一:基本必须完整。将此设置为基本将仅完成函数名,不插入任何函数参数。默认设置的必须包含在完成中,但只有名称,没有类型。设置此为完整将导致包括所有参数及其类型。

当为内置函数输入函数调用参数时,会显示一个弹出窗口,显示该参数的来自 cfdocs.org 的文档。这可以通过在您的用户包设置中将 cfml_completion_docs 设置为 false 来禁用。

内联文档

F1 被映射到内联文档命令,该命令基于光标位置提供内联文档弹出窗口。该文档命令还可以在鼠标悬停时运行。默认情况下这是启用的,但您可以在您的用户包设置中将 cfml_hover_docs 设置为 false 来禁用。

您始终可以在您自己的用户键绑定文件中覆盖默认的键绑定。

如果在内置函数或标签内运行文档命令,则将加载该函数或标签的 cfdocs.org 文档。因此,将光标定位在 dateFormat(myDate, "yyyy-mm-dd") 中的任何位置并按 F1(默认)将触发显示 dateFormat 的文档。同样,在 <cfinclude template="myOtherTemplate.cfm"> 中的任何位置按下 F1 将触发显示 cfinclude 的文档。内联文档也适用于 Application.cfc 设置和方法。

如果您在文件系统上有一个 cfdocs.org GitHub 仓库的副本,有一个包设置 "cfdocs_path" 可以设置为该仓库的数据目录(例如 "cfdocs_path": "C:/github/cfdocs/data/en/")。如果设置了此选项,cfdocs.org 文档将来自文件系统而不是通过 HTTP 请求获取。(有关更多信息,请参阅下面的包设置。)

默认快捷键绑定

在标签属性、脚本字符串以及在 cfoutput 标签之间,当文本被选中时,按 # 将当前选中的文本包裹为 #selected#

CTRL+ALT+D 将在 CFML 脚本中输出一个 <cfdump> 标签或 writeDump()/dump() 函数,并包裹任何当前选中的文本。

CTRL+SHIFT+O 将在 CFML 脚本中输出一个 <cfoutput> 标签或 writeOutput() 函数,并包裹任何当前选中的文本。

CTRL+ALT+A 将在 CFML 脚本中输出一个 <cfabort> 标签或 abort;

如果 Sublime Text 的 auto_close_tags 设置为 true,则在按下关闭标签的 / 时,将完成关闭标签。有两个包设置控制哪些 CFML 和 HTML 标签不应关闭:cfml_non_closing_tagshtml_non_closing_tags

如果包设置 cfml_auto_insert_closing_tag 设置为 true(默认为 false),当在标签中按 > 时,将在光标位置后自动插入相应的关闭标签。包设置 cfml_non_closing_tags 控制哪些 CFML 标签不会自动插入关闭标签。

包设置 cfml_between_tag_pair 控制当光标位于 CFML 标签对之间(例如 <cfoutput>|</cfoutput>)时按 ENTER 的行为。默认情况下仅插入单行新行。这可以更改为在标签对之间自动插入额外的空行(可选缩进),并将光标放在那里。有关更多信息,请参阅默认包设置文件。

CFC索引和点路径

在项目文件中根据项目分别设置了两个设置,cfc_foldersmappings。以下是一个示例(真实的项目文件将包含其他设置)

{
    "mappings": [
        {"mapping": "/framework", "path": "C:/myprojects/projectname/framework"},
        {"mapping": "/model", "path": "C:/myprojects/projectname/app/model"}
    ],
    "cfc_folders": [
        {
            "path": "C:/myprojects/projectname/app/model",
            "variable_names": ["{cfc}", "{cfc}{cfc_folder_singularized}"],
            "accessors": false
        }
    ]
}

注意:上面指定的路径可以是绝对路径,也可以是相对路径。如果是相对路径,则相对于 .sublime-project 文件的位置进行解析。

指定的映射用于在侧边栏中右键单击CFC文件并选择复制CFC点分路径时,将文件路径转换为点分路径。如果有多个映射匹配,则会提供选择,如果没有匹配项,则默认使用项目的基准文件夹作为点分路径的根。映射还用于解析组件中的extends属性、createObject函数以及使用new运算符实例化组件时的点分路径(例如:new dot.path.to.component())。当光标位于这些位置并使用F1命令时,您将获得一个弹出窗口,其中包含组件的文件路径(如果是索引过的组件,还将显示更多关于组件的信息)。您可以点击文件路径跳转到组件文件。您还可以在这些地方按CTRL+ALT+左键单击(在Mac上为CMD+ALT+左键单击)直接跳转到组件文件而不通过弹出窗口。此外,如果这些命令在用作函数调用参数的任何引号字符串中包含可解析的点分路径,则它们同样适用。

您可以在鼠标绑定 - 默认文件中看到这个鼠标绑定的结构。使用鼠标绑定 - 用户文件创建您自己的。

重要:鼠标绑定在整个Sublime Text中都是全局的,因此在使用时请小心,确保不要覆盖默认的Sublime Text鼠标绑定(例如CTRL+左键单击,该键会在点击的位置添加新的光标)。

数组包含具有一个必需键的对象:。在此指定的文件夹将递归搜索CFC文件,并将这些文件进行索引。设置是一个字符串数组,其中每个字符串指定一个变量名以关联每个索引过的CFC。名称的确定如下所示

替换
{цфц} CFC名称
{имien outsname} 如果CFC有一个实体名称,则为其实体名称,否则为CFC名称
{цфц_четырех_Outer} 包含CFC的文件夹名称
{цфц_четырех_Outer_leading_s()} 从包含CFC的文件夹名称中移除尾随's'后的名称

字符串中的任何其他文本都将保持不变——这允许指定要用于变量名称的前缀或后缀。然后,如果您在代码中键入该变量名称并跟一个.,则会提供相应的CFC的方法补全。变量名称可以包含点(例如:application.services.{цфц})。您还可以使用这些变量名称及其方法调用上的F1文档命令来查看有关CFC及其方法的文档。(注意:F1命令还适用于属性名称,如果它们与CFC变量名称匹配,则可以用于与DI框架(如DI/1)一起工作,这些框架将bean注入到具有相同名称的属性中。)此外,您还可以使用CTRL+ALT+左键单击跳转到CFC或CFC的特定方法。

默认情况下,隐式访问器包括在补全中。如果存在键并将其设置为,则会从提供的补全中删除隐式属性访问器(将始终包括显式访问器)。

这两个设置协同工作,当基础CFC及其扩展的CFC都被索引,并且指定了一个地图,使得在extends中的点路径可以被解析时,子CFC的文档和完成包括来自基础CFC的属性和方法。此外,所有索引CFC的点路径都将在extends属性、createObject函数(其中类型为component)以及使用new创建CFC时作为完成自动提供。

进一步地,当一个实例化的组件分配给一个变量(例如myVar = new path.to.mycfc()),并且已经对其索引并指定了一个映射,当在该变量名后输入.时,该组件的方法完成将提供。还有,在变量名上按F1文档命令和按CTRL+ALT+Left Click跳转到CFC命令也将在该变量名上生效。(此行为可以通过在用户包设置中设置instantiated_component_completionsfalse来禁用。)

注意:索引组件的完成有三种样式,与内置函数的完成样式匹配。这由cfml_cfc_completions包设置控制。此外,当输入索引组件方法调用参数时,将显示一个带有有关该参数信息的弹出窗口。完成名称有两种样式,由cfc_completion_names包设置控制。(该设置的两种选项是basicfull;如果更改此设置,您将需要通过命令面板运行CFML: Index Active Project命令以便更改适用于索引组件。)这些选项的原因是样式为full的完成名称(形式为method():returntype),阻止Sublime Text将本地缓冲区完成包括在完成列表中。因此,只包含方法名称的basic样式是默认的。如果您想使用full完成样式,可以使用All Autocomplete等插件作为解决方案将本地缓冲区完成放回完成列表中。

注入属性命令

SHIFT+ALT+D与一个将属性插入到组件中的命令相关联。如果在上述提到的组件变量名或方法调用上运行,它将插入一个 名称设置为一个组件变量名的属性。否则,它将显示一个包含给定项目中索引的组件变量名的列表,允许从列表中选择一个并插入。插入命令使用的默认属性模板可以在默认包设置中的di_property键下找到。这些可以在用户包设置中重写,或者通过添加相同的设置到项目设置文件中在特定项目的基础上重写。默认情况下,在插入新属性后,组件中的所有属性都将按名称排序;可以通过将di_property对象中的sort_properties键设置为false来关闭此功能。

自定义标签

对自定义标签的支持是按项目提供的。这可以设置为像使用<cfimport>标签和自定义标签前缀一样工作,或者使用通用的<cf_customtag>格式。以下是一个示例项目文件(已移除其他设置):

{
    "custom_tag_folders":
    [
        {
            "path": "C:/myprojects/projectname/customtags/page",
            "prefix": "page"
        }
    ]
}

注意:上面指定的路径可以是绝对路径,也可以是相对路径。如果是相对路径,它将与.sublime-project文件的位置相关解析。

完成此操作后,page将被作为自定义标记前缀自动补全提供,然后输入<page:后,将提供一个自定义标记文件夹中的标记列表。输入一个标记后,将提供在该自定义标记文件中找到的每个attributes范围变量的自动补全。

重要:另外,可以省略prefix键 - 在此情况下,该文件夹中的自定义标记将作为cf_tagname自动补全提供。

您可以使用F1文档命令获取关于该自定义标记的一些基本文档,CTRL+ALT+左键点击可以跳转到自定义标记文件。

索引器将在自定义标记文件中搜索thistag.executionmode is/eq/== "end"/'end'(不区分大小写)或<cfcase value="end"/'end'>(不区分大小写),以确定是否自动关闭自定义标记。

代码格式化

此包包含一个CFScript代码格式化器。您可以通过菜单查看此命令的默认设置:包设置 -> CFML -> 格式设置,或通过命令面板执行CFML: 格式化CFScript - 设置。请查看这些设置以了解可用的各种格式化选项。这些设置可以在您的用户格式设置文件中重写。

包含了一个运行格式化命令的快捷键:SHIFT+ALT+F。默认情况下,这将只对组件中的当前方法进行格式化 - 但如果选中任何文本,则对该文本进行格式化,并且在.cfm文件中格式化文件中的所有CFScript。要格式化整个组件,可以使用CFML: 格式化CFScript命令面板命令,或者您可以修改默认快捷键以自定义一个,通过用户快捷键绑定传递参数"current_method": false以绑定到全组件格式化。(您可以查看文件夹中的.sublime-keymap文件以查看默认快捷键 - 此绑定有一个注释掉的“args”对象,以便您可以简单地将其复制到用户快捷键绑定中,然后取消注释“args”对象。)

请注意:默认情况下,格式化限制在组件中的当前方法是,因为格式化是计算密集型的,并且当前在主线程上运行,这意味着Sublime Text在格式化过程中将“冻结”。在小型代码块中,这应该非常快,但在大型文件中可能需要一些时间。

CFML标签的自定义着色

除非您使用的是专用颜色方案,否则CFML和HTML标记将收到相同的着色。在Sublime Text的最新版本中,引入了新的颜色方案格式.sublime-color-scheme,以及非常容易自定义您活动的颜色方案:[https://text.sublime.net.cn/docs/color_schemes.html#customization](https://text.sublime.net.cn/docs/color_schemes.html#customization)。此包包含一个命令,将添加在Packages/User/目录中为您活动的颜色方案的应用自定义颜色的自定义方案。按CTRL+SHIFT+P打开命令面板(在Mac上按CMD+SHIFT+P),并运行CFML: 切换颜色方案样式。您可以通过此包的用户设置编辑要注入的样式。

控制器/视图切换

命令框

测试框

如果使用在给定目录中运行测试的变体,则会在URL中添加 directory=dot.path.to.directory。此外,如果在特定的CFC中运行测试,则会在URL中添加 testBundles=dot.path.to.directory.cfc。如果URL的查询字符串中已设置 directorytestBundles,则会被覆盖。当运行这些变体时,使用 testbox.tests_root 设置,该设置指定了用于确定特定测试目录的点分隔路径的根目录路径。如果您不指定它,则默认为您的项目文件位置的目录。

如果您的项目文件中没有找到这些设置,则在您的项目根文件夹中搜索 box.json 文件。如果找到,并且该文件包含一个 testbox 对象,则使用其设置。

结果在结果窗格中显示。有一个设置用于控制输出的详细程度:testbox.reporter,有两个选项:“text”和“compacttext”(“compacttext”是默认值)。如果有错误或失败,可以通过 F4SHIFT+F4 跳回和前进一步穿过文件堆栈跟踪。选择每个文件时,Sublime Text 会打开该文件并跳转到指定的行。您也可以双击任何文件,Sublime Text 将为您打开它。由于您的文件路径可能与 Sublime Text 和 CFML 应用程序服务器不同(例如,如果服务器在虚拟机上运行),还有一个设置将出现在服务器上的路径映射到出现在 Sublime Text 上的路径。使用 testbox.results.server_roottestbox.results.sublime_root 来指定相应的根路径,以便 Sublime Text 可以准确地打开堆栈跟踪中的文件。

TestBox 的所有设置都可以在默认包设置中看到。

Framework One

One (https://github.com/framework-one/fw1) 框架的函数补全和 variables.framework 设置补全可用。它们默认是禁用的,但可以通过将 "fw1_enabled": true 添加到您的 CFML 用户包设置中启用它们,或通过将相同的设置添加到项目设置文件中在每个项目中启用。基于项目的设置将覆盖全局设置。(One 的默认包设置可以在 CFML 默认包设置文件中查看。)补全在 Application.cfc 以 及 One 控制器、视图和布局文件中提供。(文件夹名称可以在设置中指定。)在控制器中,在输入 framework.fw. 后提供 One 方法补全。

© 2020