JavaScript/TypeScript Language Server 使用教程
1. 项目的目录结构及介绍
javascript-typescript-langserver/
├── client/
│ ├── src/
│ └── package.json
├── server/
│ ├── src/
│ │ ├── completion.ts
│ │ ├── diagnostics.ts
│ │ ├── index.ts
│ │ ├── languageFeatures.ts
│ │ ├── protocol.ts
│ │ ├── textDocument.ts
│ │ ├── workspace.ts
│ │ └── utils/
│ ├── package.json
│ └── tsconfig.json
├── package.json
└── README.md
client/
: 客户端相关代码,通常用于与编辑器集成。server/
: 语言服务器的主要代码,包含各种语言服务功能。src/
: 源代码目录。completion.ts
: 代码补全功能。diagnostics.ts
: 代码诊断功能。index.ts
: 主入口文件。languageFeatures.ts
: 语言特性支持。protocol.ts
: 协议处理。textDocument.ts
: 文本文档处理。workspace.ts
: 工作区管理。utils/
: 工具函数和辅助类。
package.json
: 项目依赖和脚本配置。README.md
: 项目介绍和使用说明。
2. 项目的启动文件介绍
项目的启动文件位于 server/src/index.ts
。该文件是语言服务器的主入口点,负责初始化和启动语言服务器。以下是 index.ts
的主要内容:
import { startServer } from './languageFeatures';
startServer();
startServer
函数负责启动语言服务器,并监听来自客户端的请求。
3. 项目的配置文件介绍
项目的配置文件主要包括 package.json
和 tsconfig.json
。
package.json
package.json
文件位于项目根目录和 server/
目录下,分别用于管理项目和 server
模块的依赖和脚本。
- 根目录下的
package.json
:
{
"name": "javascript-typescript-langserver",
"version": "2.10.3",
"description": "JavaScript/TypeScript language server",
"main": "lib/index.js",
"bin": {
"javascript-typescript-langserver": "./lib/index.js"
},
"scripts": {
"prepare": "npm run compile",
"compile": "tsc -p .",
"watch": "tsc -w -p .",
"test": "jest"
},
"dependencies": {
"vscode-languageserver": "^4.1.3",
"vscode-languageserver-textdocument": "^1.0.1",
"vscode-uri": "^2.1.1"
},
"devDependencies": {
"@types/jest": "^24.0.15",
"jest": "^24.8.0",
"ts-jest": "^24.0.2",
"typescript": "^3.5.2"
}
}
server/
目录下的package.json
:
{
"name": "javascript-typescript-langserver-server",
"version": "2.10.3",
"description": "JavaScript/TypeScript language server server module",
"main": "lib/index.js",
"scripts": {
"compile": "tsc -p .",
"watch": "tsc -w -p ."
},
"dependencies": {
"vscode-languageserver": "^4.1.3",
"vscode-languageserver-textdocument": "^1.0.1",
"vscode-uri": "^2.1.1"
},
"devDependencies": {
"typescript": "^3.5.2"
}
}
tsconfig.json
tsconfig.json
文件位于 `