node.js - 如何在 Kate 编辑器中启用 yaml 语言服务器

标签 node.js docker yaml language-server-protocol kate

有一个yaml language server

我想在 Kate Editor 中使用它. language server plugin 的 Kate 文档建议配置示例,例如:

{
    "servers": {
        ...
        "python": {
            "command": ["python3", "-m", "pyls", "--check-parent-process"],
            "url": "https://github.com/palantir/python-language-server",
            "highlightingModeRegex": "^Python$"
        }
        ...
    }
}

python 语言服务器开箱即用(确认插件一般没有问题)。

yaml 语言服务器建议命令:

docker run -it quay.io/redhat-developer/yaml-language-server:latest

当我从 bash 运行它时,我看到 docker 已启动:

CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS          PORTS     NAMES
fac9a04e2bf0   quay.io/redhat-developer/yaml-language-server:latest   "node ./out/server/s…"   12 seconds ago   Up 11 seconds             practical_euclid

(我将我的用户添加到一个 docker 组,这样我就可以在非 root 模式下运行 docker。Kate 也在我的用户下运行。所以我假设 LSP 也一样,并且也在我的用户下运行它的命令。)

我创建了 Kate LSP 插件配置:

        ...
        "yaml": {
            "command": ["docker", "run", "-it", "quay.io/redhat-developer/yaml-language-server:latest"],
            "url": "https://github.com/redhat-developer/yaml-language-server",
            "highlightingModeRegex": "^YAML$"
        },
        ...

Kate 配置编辑器报告它是一个有效的 JSON。

当我在 Kate 中打开 yaml 文件时,我收到消息:

10:24:14 LSP Client Log Started server yaml@/home/i314691: /usr/bin/docker run -it quay.io/redhat-developer/yaml-language-server:latest
10:24:14 LSP Client Warning Server terminated unexpectedly ... NOT Restarting [/usr/bin/docker run -it quay.io/redhat-developer/yaml-language-server:latest] [homepage: https://github.com/redhat-developer/yaml-language-server]

确实docker会立即终止,所以我不知道如何使用docker log,因为docker ps没有显示。

language server plugin 的 Kate 文档建议在语言服务器中启用进一步调试。

不幸的是,我对 node.js 的了解非常有限。你能建议如何解决 node.js docker 问题吗?如何排查yaml语言服务器问题?对于语言服务器和 Kate 之间的故障排除还有其他建议吗?

Kate 编辑器版本信息:

||/ Name                 Version                             Architecture Description
+++-====================-===================================-============-============================================
ii  kate                 4:22.04.2-0ubuntu1~ubuntu22.04~ppa1 amd64        powerful text editor
ii  kate5-data           4:22.04.2-0ubuntu1~ubuntu22.04~ppa1 all          shared data files for Kate text editor
ii  ktexteditor-katepart 5.94.0-0ubuntu1~ubuntu22.04~ppa1    amd64        provide advanced plain text editing services

最佳答案

出于某种原因,docker 无法正常工作,但是当我通过以下方式安装时

sudo snap install yaml-language-server

语言服务器在 Kate 中运行。

编辑:

sudo npm i -g yaml-language-server

也适用于我。
你只需要在 snap 和安装你不使用的 nodejs 之间选择较小的邪恶。 (我最近卸载了 snap,因为它与 Firefox 有冲突。)

关于node.js - 如何在 Kate 编辑器中启用 yaml 语言服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72572787/

相关文章:

在自托管代理上运行容器作业时,Azure DevOps YAML 构建失败

javascript - 循环内的 Node.js 回调具有错误的迭代器值

javascript - 将查询中的禁用单词字符串更新为匹配项

docker - 如何使用 Docker 注册表 API 提取有关容器的信息?未经授权

ssl - 尝试登录受信任的 (?) docker 注册表时出现 x509 错误

docker - 如何在构建另一个容器期间填充 Mysql docker 容器?

php - 通过 Saucelabs 的 Mink Extension.php(Selenium2) 解析 Behat/Mink Yml 文件配置中的动态值

ruby - 扩展哈希和(反)序列化自/至 yaml

node.js - Mongoose findById 没有返回所有字段

node.js - 每月可变金额的 Paypal 定期付款