aboutsummaryrefslogtreecommitdiffstats
path: root/README_preamble.md
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-17 09:58:52 -0800
committerGitHub <noreply@github.com>2019-11-17 09:58:52 -0800
commitac3df47ffd418b0f3aec49612d9862364820ed8d (patch)
treebc3e3a0a688b6a36b7ccd462395db7c86e8af2ea /README_preamble.md
parent[docgen] Update README.md (diff)
downloadnvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar.gz
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar.bz2
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar.lz
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar.xz
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.tar.zst
nvim-lspconfig-ac3df47ffd418b0f3aec49612d9862364820ed8d.zip
Use a template for README.md (#28)
Diffstat (limited to 'README_preamble.md')
-rw-r--r--README_preamble.md170
1 files changed, 0 insertions, 170 deletions
diff --git a/README_preamble.md b/README_preamble.md
deleted file mode 100644
index a932156b..00000000
--- a/README_preamble.md
+++ /dev/null
@@ -1,170 +0,0 @@
-# nvim-lsp
-
-WIP Common configurations for Language Servers.
-
-This repository aims to be a central location to store configurations for
-Language Servers which leverage Neovim's built-in LSP client `vim.lsp` as the
-client backbone. The `vim.lsp` implementation is made to be customizable and
-greatly extensible, but most users just want to get up and going. This
-plugin/library is for those people, although it still lets you customize
-things as much as you want in addition to the defaults that this provides.
-
-**NOTE**: Requires current Neovim master as of 2019-11-13
-
-**CONTRIBUTIONS ARE WELCOME!**
-
-There's a lot of language servers in the world, and not enough time. See
-[`lua/nvim_lsp/*.lua`](https://github.com/neovim/nvim-lsp/blob/master/lua/nvim_lsp/)
-for examples and ask us questions in the [Neovim
-Gitter](https://gitter.im/neovim/neovim) to help us complete configurations for
-*all the LSPs!* Read `CONTRIBUTING.md` for some instructions.
-
-If you don't know where to start, you can pick one that's not in progress or
-implemented from [this excellent list compiled by the coc.nvim
-contributors](https://github.com/neoclide/coc.nvim/wiki/Language-servers) or
-[this other excellent list from the emacs lsp-mode
-contributors](https://github.com/emacs-lsp/lsp-mode#supported-languages)
-and create a new file under `lua/nvim_lsp/SERVER_NAME.lua`. We recommend
-looking at `lua/nvim_lsp/texlab.lua` for the most extensive example, but all of
-them are good references.
-
-## Progress
-
-Implemented language servers:
-
-Planned servers to implement (by me, but contributions welcome anyway):
-- [ccls](https://github.com/MaskRay/ccls)
-- [lua-language-server](https://github.com/sumneko/lua-language-server)
-- [rust-analyzer](https://github.com/rust-analyzer/rust-analyzer)
-
-In progress:
-- ...
-
-## Install
-
-`Plug 'neovim/nvim-lsp'`
-
-## Usage
-
-Servers configurations can be set up with a "setup function." These are
-functions to set up servers more easily with some server specific defaults and
-more server specific things like commands or different diagnostics.
-
-The "setup functions" are `call nvim_lsp#setup({name}, {config})` from vim and
-`nvim_lsp[name].setup(config)` from Lua.
-
-Servers may define extra functions on the `nvim_lsp.SERVER` table, e.g.
-`nvim_lsp.texlab.buf_build({bufnr})`.
-
-### Auto Installation
-
-Many servers can be automatically installed with the `:LspInstall`
-command. Detailed installation info can be found
-with the `:LspInstallInfo` command, which optionally accepts a specific server name.
-
-For example:
-```vim
-LspInstall elmls
-silent LspInstall elmls " useful if you want to autoinstall in init.vim
-LspInstallInfo
-LspInstallInfo elmls
-```
-
-### Example
-
-From vim:
-```vim
-call nvim_lsp#setup("texlab", {})
-```
-
-From Lua:
-```lua
-require 'nvim_lsp'.texlab.setup {
- name = "texlab_fancy";
- log_level = vim.lsp.protocol.MessageType.Log;
- settings = {
- latex = {
- build = {
- onSave = true;
- }
- }
- }
-}
-
-local nvim_lsp = require 'nvim_lsp'
-
--- Customize how to find the root_dir
-nvim_lsp.gopls.setup {
- root_dir = nvim_lsp.util.root_pattern(".git");
-}
-
--- Build the current buffer.
-require 'nvim_lsp'.texlab.buf_build(0)
-```
-
-### Setup function details
-
-The main setup signature will be:
-
-```
-nvim_lsp.SERVER.setup({config})
-
- {config} is the same as |vim.lsp.start_client()|, but with some
- additions and changes:
-
- {root_dir}
- May be required (depending on the server).
- `function(filename, bufnr)` which is called on new candidate buffers to
- attach to and returns either a root_dir or nil.
-
- If a root_dir is returned, then this file will also be attached. You
- can optionally use {filetype} to help pre-filter by filetype.
-
- If a root_dir is returned which is unique from any previously returned
- root_dir, a new server will be spawned with that root_dir.
-
- If nil is returned, the buffer is skipped.
-
- See |nvim_lsp.util.search_ancestors()| and the functions which use it:
- - |nvim_lsp.util.root_pattern(patterns...)| finds an ancestor which
- - contains one of the files in `patterns...`. This is equivalent
- to coc.nvim's "rootPatterns"
- - More specific utilities:
- - |nvim_lsp.util.find_git_root()|
- - |nvim_lsp.util.find_node_modules_root()|
- - |nvim_lsp.util.find_package_json_root()|
-
- {name}
- Defaults to the server's name.
-
- {filetypes}
- A set of filetypes to filter for consideration by {root_dir}.
- Can be left empty.
- A server may specify a default value.
-
- {log_level}
- controls the level of logs to show from build processes and other
- window/logMessage events. By default it is set to
- vim.lsp.protocol.MessageType.Warning instead of
- vim.lsp.protocol.MessageType.Log.
-
- {settings}
- This is a table, and the keys are case sensitive. This is for the
- window/configuration event responses.
- Example: `settings = { keyName = { subKey = 1 } }`
-
- {on_attach}
- `function(client)` will be executed with the current buffer as the
- one the {client} is being attaching to. This is different from
- |vim.lsp.start_client()|'s on_attach parameter, which passes the {bufnr} as
- the second parameter instead. This is useful for running buffer local
- commands.
-
- {on_new_config}
- `function(new_config)` will be executed after a new configuration has been
- created as a result of {root_dir} returning a unique value. You can use this
- as an opportunity to further modify the new_config or use it before it is
- sent to |vim.lsp.start_client()|.
-```
-
-# LSP Implementations