efm-langserver安装与使用指南

efm-langserver安装与使用指南

efm-langserverGeneral purpose Language Server项目地址:https://gitcode.com/gh_mirrors/ef/efm-langserver

项目目录结构及介绍

efm-langserver 是一个通用的 Language Server 实现,由 mattn 开发并托管在 GitHub 上。其核心在于提供语言服务,如代码补全、格式化、符号查找等,但不直接内置对任何特定语言的支持,要求用户按需手动配置和集成对应的 formatter 和 linter。

项目的基本目录结构通常包括:

  • .gitignore:列出 Git 应该忽略的文件或目录。
  • LICENSE:记录软件使用的许可证(MIT 许可证)。
  • README.md:项目的快速入门指南和基本信息。
  • cmd/efm-langserver: 包含了主程序入口,这里是 efm-langserver 的实现所在。
  • internal: 内部库和工具,用于项目的内部逻辑实现。
  • vendor: 可能存在的第三方依赖包,虽然现代 Go 项目倾向于使用 modules 管理依赖,但从仓库历史来看这可能是旧版管理方式。
  • etc: 示例配置或者其他默认配置文件可能存放的位置。

项目的启动文件介绍

主要的启动文件是位于 cmd/efm-langserver/main.gomain 函数。这是应用程序的入口点,负责初始化服务器逻辑,监听客户端的请求并相应地处理语言相关的服务。启动时,通过命令行参数或者配置文件指定选项来定制其行为。

用户不会直接编辑这个文件以改变服务器的行为,而是通过配置文件或命令行参数进行配置。

项目的配置文件介绍

配置文件位置

配置文件默认命名为 config.yaml,它的位置取决于操作系统:

  • UNIX/Linux: $XDG_CONFIG_HOME/efm-langserver/config.yaml$HOME/.config/efm-langserver/config.yaml
  • Windows: %APPDATA%\efm-langserver\config.yaml

配置文件内容

配置文件允许用户设置多种选项来控制 efm-langserver 的行为,例如启用或禁用特定的功能,如文档格式化、范围内的文档格式化、悬停提示、文档符号、代码动作和完成等功能。一个基本的 config.yaml 示例可能包含以下内容:

documents:
  globExclude:
    - '**/*.swp'
languagedetect:
  disable: false
handlers:
  textDocument/didOpen:
    - applyfmt
initializeParams:
  initializationOptions:
    documentFormatting: true
    documentRangeFormatting: true
    hover: true
    documentSymbol: true
    codeAction: true
    completion: true

此配置告知服务器启用多项功能,并定义了一些文件排除规则以及处理文本文档打开事件时的操作。

使用 efm-langserver 前,确保已经安装所需的语言支持工具(如 yapf 对于 Python,Prettier 对于 JavaScript 等),并在配置中正确设定它们的路径或指令,以便 efm-langserver 能够调用这些外部工具进行格式化和其他操作。

通过这种方式,用户可以根据自身需求,灵活配置 efm-langserver,以达到最佳的开发环境集成效果。

efm-langserverGeneral purpose Language Server项目地址:https://gitcode.com/gh_mirrors/ef/efm-langserver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵育棋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值