visual-studio-code - 是否可以在 vscode 中定义自定义/本地短绒?
问题描述
我有一个简单的自制 linter 用于工作,它的调用方式如下:python3 scripts/lint.py FILENAME
输出是完全标准的 linter 样式的输出,例如:
path/to/file.yang:5:19: Linter 警告在这里 path/to/file.yang:6:83:这里的另一个警告 ...
我觉得将这个 linter 集成到 vscode 中应该很容易,所以我在编写代码时会自动 linting,就像 linter 扩展的工作方式一样。但是,谷歌搜索“vscode custom linter”绝对没有任何价值。
是否可以在不经历编写自定义扩展的麻烦的情况下做到这一点?
解决方案
它可以完成,但它涉及一些设置编辑。
删除默认键绑定Ctrl+S
并设置 2 个新键绑定
keybindings.json
{
"key": "ctrl+s",
"command": "-workbench.action.files.save"
},
{
"key": "ctrl+s",
"command": "multiCommand.lintingYang",
"when": "editorLangId == yang"
},
{
"key": "ctrl+s",
"command": "workbench.action.files.save",
"when": "editorLangId != yang"
}
使用 ryuta46 的扩展多命令创建保存文件并调用自定义 linter 的命令:(添加一点等待以确保文件已保存)
.vscode/settings.json
"multiCommand.commands": [
{
"command": "multiCommand.lintingYang",
"interval": 500,
"sequence": [
"workbench.action.files.save",
{ "command": "workbench.action.tasks.runTask",
"args": "Lint Yang"
}
]
}
]
linter 调用是具有自定义问题匹配器的任务
.vscode/tasks.json
{
"label": "Lint Yang",
"type": "shell",
"command": "python3",
"args": [ "${workspaceFolder}/scripts/lint.py", "${file}"],
"options": { "cwd": "${fileDirname}" },
"presentation": { "clear": true },
"problemMatcher": {
"owner": "yang",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": [
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
]
}
}
编辑
定义一个将捕获异常情况的键绑定就足够了,否则它将使用默认的键绑定。
keybindings.json
{
"key": "ctrl+s",
"command": "multiCommand.lintingYang",
"when": "editorLangId == yang"
}
推荐阅读
- python-3.x - QuadMesh 对象没有属性图?
- flash - 使用 Arduino EEPROM 库时在 ESP8266 上使用布尔值优化闪存单地址寿命
- c++ - 类型转换回调函数
- arrays - 数组将相邻元素的块移动到新索引
- python - 如何绘制一个点而不用 matplotlib.pyplot.plot 填充它?
- python - 访问 numpy.ndarray 字段的内容
- javascript - 更改背景颜色的按钮
- python-3.x - 如何将 input() 更改为小写?
- spring-boot - 部署到tomcat后启动应用失败
- javascript - 如何在游戏开始前加载所有图像?(JavaScript,预加载器)