coc-jedi 开源项目教程
1. 项目的目录结构及介绍
coc-jedi 是一个用于 Neovim 的代码补全插件,基于 coc.nvim 和 Jedi 库。以下是项目的目录结构及其介绍:
coc-jedi/
├── autoload/
│ └── coc/
│ └── jedi.vim
├── doc/
│ └── coc-jedi.txt
├── package.json
├── plugin/
│ └── coc_jedi.vim
├── README.md
├── src/
│ ├── completion.ts
│ ├── config.ts
│ ├── index.ts
│ ├── jedi_utils.ts
│ ├── language_server.ts
│ ├── logger.ts
│ ├── pycodestyle_linter.ts
│ ├── pyflakes_linter.ts
│ ├── pylint_linter.ts
│ ├── setup.ts
│ └── utils.ts
├── tsconfig.json
└── yarn.lock
autoload/
: 包含自动加载的 Vim 脚本。doc/
: 包含插件的文档文件。package.json
: 项目的 npm 配置文件。plugin/
: 包含插件的主要 Vim 脚本。README.md
: 项目的介绍和使用说明。src/
: 包含 TypeScript 源代码文件,实现插件的核心功能。tsconfig.json
: TypeScript 配置文件。yarn.lock
: 锁定依赖版本的文件。
2. 项目的启动文件介绍
项目的启动文件是 plugin/coc_jedi.vim
,它负责在 Neovim 中加载 coc-jedi 插件。该文件主要包含以下内容:
if exists('g:loaded_coc_jedi')
finish
endif
let g:loaded_coc_jedi = 1
let s:save_cpo = &cpo
set cpo&vim
command! -nargs=0 CocJediInstall call coc#rpc#request('install', [])
command! -nargs=0 CocJediUpdate call coc#rpc#request('update', [])
let &cpo = s:save_cpo
unlet s:save_cpo
该文件定义了两个命令 CocJediInstall
和 CocJediUpdate
,用于安装和更新插件。
3. 项目的配置文件介绍
项目的配置文件是 package.json
,它包含了插件的元数据和依赖信息。以下是 package.json
的部分内容:
{
"name": "coc-jedi",
"version": "0.1.0",
"description": "coc.nvim extension for jedi",
"main": "lib/index.js",
"engines": {
"coc": ">=0.0.80"
},
"scripts": {
"build": "tsc -p .",
"watch": "tsc -w -p .",
"prepublishOnly": "yarn run build"
},
"dependencies": {
"coc.nvim": "^0.0.80",
"jedi-language-server": "^0.34.13"
},
"devDependencies": {
"@types/node": "^14.14.37",
"typescript": "^4.2.3"
}
}
name
: 插件的名称。version
: 插件的版本号。description
: 插件的描述。main
: 插件的主入口文件。engines
: 插件的运行环境要求。scripts
: 包含构建和监视脚本。dependencies
: 插件的依赖项。devDependencies
: 开发依赖项。
通过这些配置,用户可以了解插件的基本信息和依赖关系,并进行相应的安装和配置。