diff options
Diffstat (limited to 'nvim/lsp/ts_ls.lua')
| -rwxr-xr-x | nvim/lsp/ts_ls.lua | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/nvim/lsp/ts_ls.lua b/nvim/lsp/ts_ls.lua deleted file mode 100755 index e3cc99b..0000000 --- a/nvim/lsp/ts_ls.lua +++ /dev/null @@ -1,104 +0,0 @@ ----@brief ---- ---- https://github.com/typescript-language-server/typescript-language-server ---- ---- `ts_ls`, aka `typescript-language-server`, is a Language Server Protocol implementation for TypeScript wrapping `tsserver`. Note that `ts_ls` is not `tsserver`. ---- ---- `typescript-language-server` depends on `typescript`. Both packages can be installed via `npm`: ---- ```sh ---- npm install -g typescript typescript-language-server ---- ``` ---- ---- To configure typescript language server, add a ---- [`tsconfig.json`](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) or ---- [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig) to the root of your ---- project. ---- ---- Here's an example that disables type checking in JavaScript files. ---- ---- ```json ---- { ---- "compilerOptions": { ---- "module": "commonjs", ---- "target": "es6", ---- "checkJs": false ---- }, ---- "exclude": [ ---- "node_modules" ---- ] ---- } ---- ``` ---- ---- Use the `:LspTypescriptSourceAction` command to see "whole file" ("source") code-actions such as: ---- - organize imports ---- - remove unused code - -return { - init_options = { hostInfo = 'neovim' }, - cmd = { 'typescript-language-server', '--stdio' }, - filetypes = { - 'javascript', - 'javascriptreact', - 'javascript.jsx', - 'typescript', - 'typescriptreact', - 'typescript.tsx', - }, - root_markers = { 'tsconfig.json', 'jsconfig.json', 'package.json', '.git' }, - handlers = { - -- handle rename request for certain code actions like extracting functions / types - ['_typescript.rename'] = function(_, result, ctx) - local client = assert(vim.lsp.get_client_by_id(ctx.client_id)) - vim.lsp.util.show_document({ - uri = result.textDocument.uri, - range = { - start = result.position, - ['end'] = result.position, - }, - }, client.offset_encoding) - vim.lsp.buf.rename() - return vim.NIL - end, - }, - commands = { - ['editor.action.showReferences'] = function(command, ctx) - local client = assert(vim.lsp.get_client_by_id(ctx.client_id)) - local file_uri, position, references = unpack(command.arguments) - - local quickfix_items = vim.lsp.util.locations_to_items(references, client.offset_encoding) - vim.fn.setqflist({}, ' ', { - title = command.title, - items = quickfix_items, - context = { - command = command, - bufnr = ctx.bufnr, - }, - }) - - vim.lsp.util.show_document({ - uri = file_uri, - range = { - start = position, - ['end'] = position, - }, - }, client.offset_encoding) - - vim.cmd('botright copen') - end, - }, - on_attach = function(client, bufnr) - -- ts_ls provides `source.*` code actions that apply to the whole file. These only appear in - -- `vim.lsp.buf.code_action()` if specified in `context.only`. - vim.api.nvim_buf_create_user_command(bufnr, 'LspTypescriptSourceAction', function() - local source_actions = vim.tbl_filter(function(action) - return vim.startswith(action, 'source.') - end, client.server_capabilities.codeActionProvider.codeActionKinds) - - vim.lsp.buf.code_action({ - context = { - only = source_actions, - }, - }) - end, {}) - end, -} |
