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

CMake代码段插件

作者: sevas 全部

Sublime Text 2/3的CMake代码段和变量及命令的自动补全

详细信息

  • 0.1.2
  • bitbucket.org
  • bitbucket.org
  • 11年前
  • 4年前
  • 11年前

安装

  • 总计 7K
  • Win 3K
  • Mac 2K
  • Linux 3K
2023年8月6日 2023年8月5日 2023年8月4日 2023年8月3日 2023年8月2日 2023年8月1日 2023年7月31日 2023年7月30日 2023年7月29日 2023年7月28日 2023年7月27日 2023年7月26日 2023年7月25日 2023年7月24日 2023年7月23日 2023年7月22日 2023年7月21日 2023年7月20日 2023年7月19日 2023年7月18日 2023年7月17日 2023年7月16日 2023年7月15日 2023年7月14日 2023年7月13日 2023年7月12日 2023年7月11日 2023年7月10日 2023年7月9日 2023年7月8日 2023年7月7日 2023年7月6日 2023年7月5日 2023年7月4日 2023年7月3日 2023年7月2日 2023年7月1日 2023年6月30日 2023年6月29日 2023年6月28日 2023年6月27日 2023年6月26日 2023年6月25日 2023年6月24日 2023年6月23日
Windows 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
Mac 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
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

源代码
bitbucket.org

CMakeSnippets for Sublime Text 2/3

构建状态

Build Status (master) (master)

Build Status (stable) (stable)

这是什么?

这是一个尝试减少每周往返于文本编辑器和在线CMake文档之间数百次带来的纯粹快乐的尝试。

这是CMake命令和变量的代码段集合。

这不是什么?

此软件包不处理语法高亮。为此,我目前依赖于此软件包。您还需要安装它,以便在Sublime Text中注册CMake文件类型。

这不是CMake语言的完整功能的补全引擎。这意味着您不能将光标移动到现有的CMake命令内部,然后按CTRL Tab来获取相关建议。

我能感觉到你的失望。我也一样。

功能

  • CMake命令的代码段
  • 所有CMake内置变量的补全

计划的功能

  • 快速访问CMake在线文档中命令和变量的描述
  • 以下工具链的编译器和链接器标志完成
    • clang/clang++
    • gcc/g++
    • Microsoft Visual C++ 2008至2012
    • Intel Composer XE 2013

安装

安装CMakeSnippets推荐的做法是使用Package Control。如前所述,您必须首先安装CMake软件包,也是从Package Control安装。

手动安装

在您的平台Sublime Text软件包目录中的CMakeSnippets目录中下载或克隆此存储库

  • Mac: hg clone https://bitbucket.org/sevas/sublime_cmake_snippets ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/CMakeSnippets
  • Windows: hg clone https://bitbucket.org/sevas/sublime_cmake_snippets %APPDATA%\Sublime Text 2\CMakeSnippets
  • Linux: hg clone https://bitbucket.org/sevas/sublime_cmake_snippets ~/.Sublime Text 2/Packages/CMakeSnippets

此仓库在github上有镜像,所以如果您喜欢使用git,也可以使用(这里针对Sublime Text 3)

  • Mac: git clone https://github.com/sevas/sublime_cmake_snippets.git ~/Library/Application Support/Sublime Text 3/Packages/User/CMakeSnippets
  • Windows: git clone https://github.com/sevas/sublime_cmake_snippets.git %APPDATA%\Sublime Text 3\User\CMakeSnippets
  • Linux: git clone https://github.com/sevas/sublime_cmake_snippets.git ~/.Sublime Text 3/Packages/User/CMakeSnippets

重启Sublime Text并打开一个CMake构建脚本。

用法

在CMake构建脚本内部(例如名为CMakeLists.txt或任何扩展名为.cmake的文件)输入代码片段字符串时,建议弹出列表应出现。如果没有出现,请按CTRL Tab。在列表中选择您想要的条目,然后按Tab键以扩展缩写到相应的代码片段。

所有代码片段的缩写都以相关的CMake命令开头,遵循一个粗略的命名约定,涉及命令后单词的第一个字符。

例如

  • add_custom_command()变为addcc
  • string(APPEND)变为stringapp
  • get_filename_component(PATH)变为getfcp

它们并不总是那么直观,但我认为它们相当不错。主要问题是来自Sublime Text 2建议框有限的宽度。代码片段必须是相当小的,以便留出描述字符串的空间。然而,Sublime Text 3似乎会根据内容调整大小。

可以通过命令面板获得完整的代码片段列表。打开面板,键入CMake以过滤CMake代码片段,并键入命令的开头以过滤该命令的代码片段。

设计选择

合理的默认值

一些命令,如find_library()install(),根据您使用的参数提供多种不同行为。尽可能的情况下,我添加了更简单、更常用的使用模式作为代码片段。这些缩写基于CMake文档中提供的变体和编写CMake构建脚本的个人经验。期望可能有所不同。

小写命令

我确信在互联网上某处有一场有关是否应该使用大写字母或小写字母的CMake命令的激战。

此包坚决使用小写。主要原因是我不喜欢被文本文件大喊大叫。

顺便说一下,CMake文档也同意这一点。

默认情况下使用源列表变量

对于所有使用文件列表作为参数的命令(例如add_executable()add_library()source_group()),相关的代码片段假设文件已被定义为列表变量。

即使CMake没有强制这种风格,我认为以下结构更胜一筹

set(Hello_SOURCE_FILES 
    "src/foo.cpp" 
    "src/bar.cpp" 
    "src/baz.cpp")

source_group("hello" FILES ${Hello_SOURCE_FILES})

add_executable(Hello ${Hello_SOURCE_FILES})

add_executable(Hello src/foo.cpp src/bar.cpp src/baz.cpp)

源列表是可以重复使用的。将源列表以每行一个文件的格式布局可以使比较和合并CMake构建脚本变得容易得多。您应该这么做。

带引号的路径

当我 Prefer when文件和目录路径之间带有引号时 CMaketext 文件更容易扫描,因为Sublime Text的CMake模式以不同的方式显示带引号的字符串。您也无法知道路径何时将包含空格。

include_directories(
    "${Hello_INCLUDE_DIRS}"
    "${CMAKE_CURRENT_SOURCE_DIR}/include"
)
add_executable(Hello ${SOURCE_FILES})

带引号的路径消除了对路径列表如何连接的不确定性。所有代码片段都遵循此规则。

变量参数

当代码片段向您显示两个参数占位符,并且已预先填充带有索引的名称时,例如

list(APPEND LIST_VARIABLE item1 item2)

这意味着此参数接受可变数量的参数。前两个已安排,添加(或删除)您需要的任何内容。

在不兼容参数间进行选择可通过以下方式表示

  • 列出所有选择项,用管道符号(|)分隔(例如 add_custom_command(TARGET targetname PRE_BUILD|PRE_LINK|POST_BUILD)
  • 使用完全不同的代码片段(例如 string()file() 命令)

缩进每一级使用两个空格

请不要给我发电子邮件。

许可证

CMakeSnippets 项目使用 MIT 许可证 发布。模板文件究竟能否算作代码呢?我在想。

致谢

非常感谢 InsertNums 软件包的作者和贡献者。没有你们,我无法完成这项工作。