summaryrefslogtreecommitdiff
path: root/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua
diff options
context:
space:
mode:
authorMichael Smith <mikesmiffy128@gmail.com>2024-07-15 20:05:47 +0100
committerMichael Smith <mikesmiffy128@gmail.com>2024-07-15 20:05:47 +0100
commit522d56557b00246286d803425751a4334f3a94a5 (patch)
tree23ca335a3526197c2a6327ce10bfd58411b0a609 /start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua
parenta7b72fc27edac2305dbf0af807981bd703835b25 (diff)
Update lspconfig, add indent-blanklineHEADmaster
indent-blankline is probably old because I've actually been using it for ages, but I have a strict if-it-ain't-broke policy, so I'm not going to update it. lspconfig *was* broke though with nvim 0.10, so now it's fixed.
Diffstat (limited to 'start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua')
-rw-r--r--start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua172
1 files changed, 0 insertions, 172 deletions
diff --git a/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua b/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua
deleted file mode 100644
index 925cdfe..0000000
--- a/start/lspconfig-0.1.3/lua/lspconfig/server_configurations/eslint.lua
+++ /dev/null
@@ -1,172 +0,0 @@
-local util = require 'lspconfig.util'
-local lsp = vim.lsp
-
-local get_eslint_client = function()
- local active_clients = lsp.get_active_clients()
- for _, client in ipairs(active_clients) do
- if client.name == 'eslint' then
- return client
- end
- end
- return nil
-end
-
-local function fix_all(opts)
- opts = opts or {}
-
- local eslint_lsp_client = get_eslint_client()
- if eslint_lsp_client == nil then
- return
- end
-
- local request
- if opts.sync then
- request = function(bufnr, method, params)
- eslint_lsp_client.request_sync(method, params, nil, bufnr)
- end
- else
- request = function(bufnr, method, params)
- eslint_lsp_client.request(method, params, nil, bufnr)
- end
- end
-
- local bufnr = util.validate_bufnr(opts.bufnr or 0)
- request(0, 'workspace/executeCommand', {
- command = 'eslint.applyAllFixes',
- arguments = {
- {
- uri = vim.uri_from_bufnr(bufnr),
- version = lsp.util.buf_versions[bufnr],
- },
- },
- })
-end
-
-local bin_name = 'vscode-eslint-language-server'
-local cmd = { bin_name, '--stdio' }
-
-if vim.fn.has 'win32' == 1 then
- cmd = { 'cmd.exe', '/C', bin_name, '--stdio' }
-end
-
-return {
- default_config = {
- cmd = cmd,
- filetypes = {
- 'javascript',
- 'javascriptreact',
- 'javascript.jsx',
- 'typescript',
- 'typescriptreact',
- 'typescript.tsx',
- 'vue',
- },
- -- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats
- root_dir = util.root_pattern(
- '.eslintrc.js',
- '.eslintrc.cjs',
- '.eslintrc.yaml',
- '.eslintrc.yml',
- '.eslintrc.json',
- 'package.json'
- ),
- -- Refer to https://github.com/Microsoft/vscode-eslint#settings-options for documentation.
- settings = {
- validate = 'on',
- packageManager = 'npm',
- useESLintClass = false,
- codeActionOnSave = {
- enable = false,
- mode = 'all',
- },
- format = true,
- quiet = false,
- onIgnoredFiles = 'off',
- rulesCustomizations = {},
- run = 'onType',
- -- nodePath configures the directory in which the eslint server should start its node_modules resolution.
- -- This path is relative to the workspace folder (root dir) of the server instance.
- nodePath = '',
- -- use the workspace folder location or the file location (if no workspace folder is open) as the working directory
- workingDirectory = { mode = 'location' },
- codeAction = {
- disableRuleComment = {
- enable = true,
- location = 'separateLine',
- },
- showDocumentation = {
- enable = true,
- },
- },
- },
- on_new_config = function(config, new_root_dir)
- -- The "workspaceFolder" is a VSCode concept. It limits how far the
- -- server will traverse the file system when locating the ESLint config
- -- file (e.g., .eslintrc).
- config.settings.workspaceFolder = {
- uri = new_root_dir,
- name = vim.fn.fnamemodify(new_root_dir, ':t'),
- }
- end,
- handlers = {
- ['eslint/openDoc'] = function(_, result)
- if not result then
- return
- end
- local sysname = vim.loop.os_uname().sysname
- if sysname:match 'Windows' then
- os.execute(string.format('start %q', result.url))
- elseif sysname:match 'Linux' then
- os.execute(string.format('xdg-open %q', result.url))
- else
- os.execute(string.format('open %q', result.url))
- end
- return {}
- end,
- ['eslint/confirmESLintExecution'] = function(_, result)
- if not result then
- return
- end
- return 4 -- approved
- end,
- ['eslint/probeFailed'] = function()
- vim.notify('[lspconfig] ESLint probe failed.', vim.log.levels.WARN)
- return {}
- end,
- ['eslint/noLibrary'] = function()
- vim.notify('[lspconfig] Unable to find ESLint library.', vim.log.levels.WARN)
- return {}
- end,
- },
- },
- commands = {
- EslintFixAll = {
- function()
- fix_all { sync = true, bufnr = 0 }
- end,
- description = 'Fix all eslint problems for this buffer',
- },
- },
- docs = {
- description = [[
-https://github.com/hrsh7th/vscode-langservers-extracted
-
-vscode-eslint-language-server: A linting engine for JavaScript / Typescript
-
-`vscode-eslint-language-server` can be installed via `npm`:
-```sh
-npm i -g vscode-langservers-extracted
-```
-
-vscode-eslint-language-server provides an EslintFixAll command that can be used to format document on save
-```vim
-autocmd BufWritePre *.tsx,*.ts,*.jsx,*.js EslintFixAll
-```
-
-See [vscode-eslint](https://github.com/microsoft/vscode-eslint/blob/55871979d7af184bf09af491b6ea35ebd56822cf/server/src/eslintServer.ts#L216-L229) for configuration options.
-
-Additional messages you can handle: eslint/noConfig
-Messages already handled in lspconfig: eslint/openDoc, eslint/confirmESLintExecution, eslint/probeFailed, eslint/noLibrary
-]],
- },
-}