vscode插件快餐教程(10) - 设置

在插件中,根据用户的环境和个性化的不同,需要增加一些配置项。

读写配置项

可以通过vscode.workspace.getConfiguration()方法来获取所有的设置项。

let config: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration();

设置项可以分类,可以指定某一类前缀,来获取这一类的所有属性,例:

let config2: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration('launch');

获取的配置对象将包括:launch.configurations:Array和launch.compounds等子项。

取得到全部或者分类之后,就可以根据名称来通过get方法来读取配置项的值了:

例,我们读取一个tab等于多少个空格的选项:

 let editorConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration('editor');let tabsize = editorConfig.get<number>('tabSize');

同样,我们可以通过WorkspaceConfiguration的update方法来更新配置项,例:

 editorConfig.update('tabSize',4);

添加自己的配置项

在package.json中,contributes下通过configuration来添加设置项,例:

 "contributes": {"configuration": {"title": "BanmaOS CodeComplete Configuration","properties": {"banmaos.enableCodeCompletion": {"type": "boolean","default": false,"description": "Whether to enable AliOS code completion"},"banmaos.codeCompletionServer": {"type": "string","default": "","description": "Server list for code completion"}}}}

运行后打开settings,显示出来是这个样子的:

指定缺省值

自己设置的配置项可能都设了默认值,但是如果是依赖别人的配置项,可能因为环境不同就没有这个项目。这时有三个解决方案:

  1. 假设存在,然后判断undefined
  2. 先用has方法判断下存不存在
  3. 指定一个默认值, get方法的第二个函数就是干这个的:
let whatisthis = editorConfig.get<string>('notExisted',"Unknown value");

因为这个项目就是没定义,所以返回值为Unknown value。

值的优先级

在目前的版本中,配置项的值有4种:默值值、全局值、工作区值、工作区目录值。
除了默认值不能改之外,其他三个值的类型叫做ConfigurationTarget,分为Global,Workspace和WorkspaceFolder三种。
前面讲到的update方法的第三个参数就是ConfigurationTarget值。可以直接指定ConfigurationTarget,也可以给一个布尔值,true表示Global,false表示Workspace。如果为空或者undefined,则优先选WorkspaceFolder,如果不适用则自动适配为Workspace.

例:带有ConfigurationTarget的更新:

 editorConfig.update('tabSize',4, vscode.ConfigurationTarget.Global);editorConfig.update('tabSize',4, true);

值这么多有点乱哈,所以vscode为我们提供了一个方法去检查这个配置项的所有值,即inspect方法。我们看个例子:

console.log(editorConfig.inspect<string>('tabSize'));

输出的对象类似这样:

key:"editor.tabSize"
defaultValue:4
globalValue:4
workspaceValue:4

vscode插件快餐教程(10) - 设置相关推荐

  1. vscode插件快餐教程(5) - 代码补全

    vscode插件快餐教程(5) - 代码补全 上节我们介绍了lsp的基本框架和协议的三次握手. 下面我们先学习一个最简单的功能协议:给vscode发送一条通知. LSP窗口消息 在LSP协议中,跟窗口 ...

  2. 微信读书vscode插件_推荐 10 款有趣的 VSCode 插件

    如果你知道 VSCode,一说起它,你可能第一个想到的就是把它当做一个代码编辑器,而它的界面应该可能大概率是这样的: 如果你恰好又是个程序员,那你可能经常会用到它,不管是 Python.JS 还是 C ...

  3. UE4大数据可视化教程(10)——设置背景音乐和播放MP3格式音乐

    目录 设置背景音乐 播放MP3格式音乐 设置背景音乐 将wav格式音乐拖入UE4,然后新建一个Sound_Cue,拖入场景 打开Sound_Cue,连接wav格式音乐,勾上循环

  4. Tensorflow快餐教程(12) - 用机器写莎士比亚的戏剧

    高层框架:TFLearn和Keras 上一节我们学习了Tensorflow的高层API封装,可以通过简单的几步就生成一个DNN分类器来解决MNIST手写识别问题. 尽管Tensorflow也在不断推进 ...

  5. vscode中配置LeetCode插件的教程(愉快刷题)

    转载于脚本之家,原链接为https://www.jb51.net/article/183720.htm 大家好,今早在B站看到up主的vscode里藏了leetcode插件,这才知道原来还有这款神器. ...

  6. vsCode安装使用教程和插件安装

    vsCode安装使用教程 vsCode是什么 vsCode安装 vsCode汉化 vsCode常用命令说明 vsCode左边图标说明 vsCode基本使用 前端常用插件 在vosCode中显示html ...

  7. HeyUI组件库发布vscode插件,PS教程: 如何开发vscode插件?

    前沿 HeyUI组件库,我们项目组已经用了一年多了. 一直没有对应的组件库插件,我一直耿耿于怀. 所以,抽时间查阅了vscode的插件开发教程,终于把vscode的插件完成了. 在此奉上我们的插件库链 ...

  8. vscode浏览器扩展(图文教程) - 设置篇

    vscode浏览器扩展 - 图文教程 图文设置 · 操作如图: 以上就是关于" vscode浏览器扩展(图文教程) - 设置篇 "的全部内容.

  9. Markdown(1):markdown设置标题、代码、图片、链接、标题、配置vscode插件

    我基于vscode进行下面的markdown学习,应该适用于ubuntu和window系统:window系统下有比较好的破解版软件,大家可以去看看,ubuntu下感觉vscode比较好用. 目录 一. ...

最新文章

  1. MySQL运行状态show status详解
  2. 博士申请 | 哥本哈根大学招收机器学习和信息检索全奖博士生(年薪34万)
  3. VTK:PolyData之ThresholdPoints
  4. 有一个长为n的数组A,求满足0≤a≤bn的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。...
  5. 用户无故被扣21000元话费,扣钱容易还钱难,运营商的回应看醉了
  6. ERROR InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0
  7. 2017-09-16
  8. 华为:三层交换机 命令示例
  9. p站,一个神奇的网站
  10. 2021年中国互联网企业100强(附名单)
  11. 山东省第八届 ACM 省赛 Parity check (规律、水)
  12. JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)
  13. 安利4款支持Linux的实用绘图软件
  14. 游戏设计模式阅读笔记11——行为模式(子类沙箱)
  15. 基于HTML节日主题网页项目的设计与实现——圣诞节日介绍(HTML+CSS)
  16. 社交网络:有意义的不仅是邓巴数
  17. 厉害!苹果 10 亿美元收购英特尔调制解调器部门!
  18. Shader之——高效率高度雾 云海
  19. 1.2配置通过Telnet登录系统
  20. 大数据——Java I/O输入输出处理(二)

热门文章

  1. 解决Typora文件夹中的.md文件到另一台笔记本图片丢失问题
  2. Linux下安装 teamviewer
  3. Spring cloud gateway 详解和配置使用
  4. 玩机搞机---另类操作 修改原生卡刷包转换为线刷包方式刷机
  5. c语言变量标识符,C语言简单记-标识符,注释,数据类型,变量
  6. Docker 学习3
  7. 华为云用科技开启智慧化生活
  8. 推土机行业发展现状及趋势分析,智能、舒适和绿色是未来发展趋势「图」
  9. VC++6.0 修改项目工程名称
  10. i7-9750h 和i5-9300h哪个好 i7-9750h 和i5-9300h对比差距