Skip to content

npc1054657282/xmake-vscjsonc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xmake-vscjsonc

可以修改vscode的settings.json风格的jsonc,不破坏注释的配置设置xmake模块。

概述

虽然xmake已经提供了json解析工具,但是,由于vscode常用的配置文件并非标准json,而是“Json with comments”。因此,在xmake脚本中如果想要动态修改vscode配置,仍然存在一些不便。

这个小模块是一个比较简要的能够保留原有vscode注释的jsonc编辑器。由于主要目标是为了动态修改vscode配置,所以功能比较简陋,主要侧重于编辑而不是读取。

使用方法

module/vsjsonc.lua文件拷贝到工程里的模块目录,这里假定模块目录为module

在xmake脚本域使用:

local editor = import("module.vscjsonc")("path/to/jsonc/file")

打开并解析一个jsonc文档。如果文件不存在,则将解析为一个空白文档。

对于得到的editor,主要提供setsave方法。详细的使用方法可以参见module/vsjsonc.lua中的test_jsonc函数。

set

  • 参数 path (string | table)

    描述jsonc文档中一个键的路径。如果为string,表示根级别下的单个键。由于vscode的配置往往采用扁平化管理,因此该配置在实践中往往已经足够。如果为table,表示一个嵌套的键路径,表中的每个元素对应路径的一层。

  • 参数 value (string | number | boolean | nil | table)

    要设置到指定路径的新值。可以是任何标准的JSON数据类型:字符串、数字、布尔值或nil(会被转换成null)。

    注意: 如果value是一个table(用于表示JSON对象或数组),它必须被vscjsonc.object()vscjsonc.array()函数包装 。这样做是为了明确区分是创建一个对象还是一个数组,因为在Lua中它们都用table表示。直接传入一个未包装的普通table会导致错误。

  • 参数 options (table, 可选)

    一个包含额外配置选项的表 。

    • options.comment (string, 可选)

      为新设置的值前方添加一行注释。

      示例: options = { comment = "这是一行注释" }

    • options.preserve_comments (boolean, 可选)

      当更新一个已存在的值时,决定是否保留其原有的注释。默认为true。若设置为false,在更新值时,会丢弃该节点上原有的所有注释。

  • 返回值 编辑器实例本身,以便进行链式调用

save

将设置的内容保存到打开的jsonc文档。

About

可以修改vscode的settings.json风格的jsonc的,不破坏注释的配置设置xmake模块

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published