Sublime Text Plugin - 如何获取当前语法的注释块类型
Sublime Text Plugin - How can I get the comment block type of the current syntax
我正在为 Sublime Text 编写一个插件,我想获取字符以使用文档的当前语法添加评论。
例如
- Python ->
#
- PHP ->
//
- C ->
//
- C++ ->
//
- .ini ->
;
- ...
当然可以
view.run_command('toggle_comment', {'block': True})
但我不想只是添加评论,我想知道我应该使用的字符...
有什么想法吗?
I had a look in this documentation, but I didn't find anything
您可以使用 view.meta_info('shellVariables', 0)
获取为当前文档语法定义的 shellVariables
数组。
(我指定 0
的第二个参数表示视图中要查询的位置 (a.k.a point in official terminology),这对于包含嵌入式语法的视图很有用,即 PHP/HTML/JS )
示例:
在 Python 文件中 returns:
[{'name': 'TM_COMMENT_START', 'value': '# '}, {'name': 'TM_LINE_TERMINATOR', 'value': ':'}]
在 XML 文件中 returns:
[{'name': 'TM_COMMENT_END', 'value': ' -->'}, {'name': 'TM_COMMENT_START', 'value': '<!-- '}]
在 JavaScript 文件上:
[{'name': 'TM_COMMENT_END_2', 'value': '*/'}, {'name': 'TM_COMMENT_START', 'value': '// '}, {'name': 'TM_COMMENT_START_2', 'value': '/*'}]
如您所见,数组中的相关字典项有一个 name
的 TM_COMMENT_START
,对于块注释,也会有一个 TM_COMMENT_END
。 JavaScript 等支持单行注释和块注释的语法也可以具有相同的名称并带有 _2
后缀。
因此,让字符开始评论的代码可能如下所示:
comment_characters = [var['value'] for var in view.meta_info('shellVariables', 0) if var['name'] == 'TM_COMMENT_START'][0]
我正在为 Sublime Text 编写一个插件,我想获取字符以使用文档的当前语法添加评论。
例如
- Python ->
#
- PHP ->
//
- C ->
//
- C++ ->
//
- .ini ->
;
- ...
当然可以
view.run_command('toggle_comment', {'block': True})
但我不想只是添加评论,我想知道我应该使用的字符...
有什么想法吗?
I had a look in this documentation, but I didn't find anything
您可以使用 view.meta_info('shellVariables', 0)
获取为当前文档语法定义的 shellVariables
数组。
(我指定 0
的第二个参数表示视图中要查询的位置 (a.k.a point in official terminology),这对于包含嵌入式语法的视图很有用,即 PHP/HTML/JS )
示例:
在 Python 文件中 returns:
[{'name': 'TM_COMMENT_START', 'value': '# '}, {'name': 'TM_LINE_TERMINATOR', 'value': ':'}]
在 XML 文件中 returns:
[{'name': 'TM_COMMENT_END', 'value': ' -->'}, {'name': 'TM_COMMENT_START', 'value': '<!-- '}]
在 JavaScript 文件上:
[{'name': 'TM_COMMENT_END_2', 'value': '*/'}, {'name': 'TM_COMMENT_START', 'value': '// '}, {'name': 'TM_COMMENT_START_2', 'value': '/*'}]
如您所见,数组中的相关字典项有一个 name
的 TM_COMMENT_START
,对于块注释,也会有一个 TM_COMMENT_END
。 JavaScript 等支持单行注释和块注释的语法也可以具有相同的名称并带有 _2
后缀。
因此,让字符开始评论的代码可能如下所示:
comment_characters = [var['value'] for var in view.meta_info('shellVariables', 0) if var['name'] == 'TM_COMMENT_START'][0]