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

定义解析器

ukyouz ST4

一个Sublime Text插件,帮助您获取C源代码中#define的值。

详细信息

安装

  • 总数 74
  • Win 51
  • Mac 14
  • Linux 9
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日
Windows 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
Mac 1 1 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

SublimeText-DefineParser

Hero Screenshot

这是一个用于计算C语言#define值的python解析器,由ukyouz/C-define-Parser扩展。

支持的功能

  • 显示光标下的#define值/所有#define值
  • 从标记为根目录的文件夹中解析#define值
  • 在指定配置下标记无效代码

用途

使用Sublime Text打开一个C项目文件夹,此插件将开始构建定义数据。

默认设置下,解析器将查找包含以下根标记的最接近的父文件夹。

{
    "define_parser_root_markers": [".root", ".git", ".gitlab"],
}

构建定义数据后,您可以享受以下功能。

获取#define值

默认情况下,您必须手动执行Define Parser: Calculate #define Value来获取光标下的宏值。我强烈建议您在插件Mouse Binding文件中添加以下配置,该文件可以在菜单 -> 偏好设置 -> 包设置 -> Define Parser -> 鼠标绑定中打开。

[
    {
        "button": "button1",
        "count": 1,
        "press_command": "drag_select",
        "modifiers": ["alt"],
        "command": "calculate_define_value"
    },
]

然后,您可以按下Alt键并左击,以显示当前光标位置下方#define的计算值。

Preview: Alt-Click Button1

或,按下Alt键并拖动一个选择。

Preview: Alt-Drag Button1

突出显示无效代码区域

无效代码区域将默认以灰色突出显示。

Preview: Highlight Inactive Code

如果您不想在启动时执行此操作,可以更改以下设置

{
    "highlight_inactive_enable": true,
}

您还可以运行Define Parser: Toggle Highlight for Inactive Code命令来切换当前窗口的高亮状态,或使用默认快捷键Ctrl-\

默认情况下,只突出显示具有以下扩展名的文件中的无效代码高亮显示

{
    //"highlight_inactive_extensions": [".h", ".c", ".cpp"], // deprecated!
    "highlight_inactive_header_exts": [".h"],
    "highlight_inactive_source_exts": [".c", ".cpp"],
}

注意,这些设置是区分大小写的。会对源文件中的本地定义进行仔细考虑,以计算准确且正确的结果。

如果出现不匹配或定义数据损坏,请尝试运行Define Parser: Rebuild #define Data命令来重新构建解析数据。

编译器配置

对于C编译器,某些额外的定义在编译命令中指定,而无需在源代码中编写。为了设置这些额外的定义,您可以只需运行定义解析器:选择定义配置命令来创建一个编译器标志文件。按照说明,此插件帮助您在根目录中创建配置文件。配置文件创建后,您可以选择配置以获得更精确的解析结果。

文件名将用作配置名,对于定义解析器使用,此插件只使用-D选项。

选择配置后,需要一些时间(可能需要几分钟)来重新构建定义数据;然后新配置生效,不再活动的区域相应地改变。

例如,我们在配置文件中指定了-DENV=ENV_TEST

Preview: Highlight Inactive Code with Config


局限性/已知问题

  • 目前仅支持在Sublime Text窗口中打开一个文件夹。
  • 出现在#define DEFINITION之前的所有DEFINITION都将被视为已定义的值,上下文顺序没有得到很好的处理.
  • 构建定义数据对于大型项目可能很慢(几秒钟),需要对解析速度进行进一步的优化。