diff options
| author | kylo252 <[email protected]> | 2021-10-09 22:17:30 +0200 | 
|---|---|---|
| committer | kylo252 <[email protected]> | 2021-10-09 22:17:30 +0200 | 
| commit | caf62bcfed4fc6cfed26164e39d22a568d21f9d0 (patch) | |
| tree | 47f7ddcbe7ef10b6cffd8398dbfc215d94fc2fae /lua/lsp/providers | |
| parent | 4126e5765d69840660fab2a05bbc664ad0117b95 (diff) | |
| parent | 82b7a35858479223c1e34bea2f64451ecf1e5f66 (diff) | |
Merge remote-tracking branch 'origin/rolling'
Diffstat (limited to 'lua/lsp/providers')
| -rw-r--r-- | lua/lsp/providers/jsonls.lua | 197 | ||||
| -rw-r--r-- | lua/lsp/providers/sumneko_lua.lua | 19 | ||||
| -rw-r--r-- | lua/lsp/providers/vuels.lua | 26 | ||||
| -rw-r--r-- | lua/lsp/providers/yamlls.lua | 30 | 
4 files changed, 272 insertions, 0 deletions
| diff --git a/lua/lsp/providers/jsonls.lua b/lua/lsp/providers/jsonls.lua new file mode 100644 index 00000000..1fffa686 --- /dev/null +++ b/lua/lsp/providers/jsonls.lua @@ -0,0 +1,197 @@ +local default_schemas = nil +local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls") +if status_ok then +  default_schemas = jsonls_settings.get_default_schemas() +end + +local schemas = { +  { +    description = "TypeScript compiler configuration file", +    fileMatch = { +      "tsconfig.json", +      "tsconfig.*.json", +    }, +    url = "https://json.schemastore.org/tsconfig.json", +  }, +  { +    description = "Lerna config", +    fileMatch = { "lerna.json" }, +    url = "https://json.schemastore.org/lerna.json", +  }, +  { +    description = "Babel configuration", +    fileMatch = { +      ".babelrc.json", +      ".babelrc", +      "babel.config.json", +    }, +    url = "https://json.schemastore.org/babelrc.json", +  }, +  { +    description = "ESLint config", +    fileMatch = { +      ".eslintrc.json", +      ".eslintrc", +    }, +    url = "https://json.schemastore.org/eslintrc.json", +  }, +  { +    description = "Bucklescript config", +    fileMatch = { "bsconfig.json" }, +    url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json", +  }, +  { +    description = "Prettier config", +    fileMatch = { +      ".prettierrc", +      ".prettierrc.json", +      "prettier.config.json", +    }, +    url = "https://json.schemastore.org/prettierrc", +  }, +  { +    description = "Vercel Now config", +    fileMatch = { "now.json" }, +    url = "https://json.schemastore.org/now", +  }, +  { +    description = "Stylelint config", +    fileMatch = { +      ".stylelintrc", +      ".stylelintrc.json", +      "stylelint.config.json", +    }, +    url = "https://json.schemastore.org/stylelintrc", +  }, +  { +    description = "A JSON schema for the ASP.NET LaunchSettings.json files", +    fileMatch = { "launchsettings.json" }, +    url = "https://json.schemastore.org/launchsettings.json", +  }, +  { +    description = "Schema for CMake Presets", +    fileMatch = { +      "CMakePresets.json", +      "CMakeUserPresets.json", +    }, +    url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json", +  }, +  { +    description = "Configuration file as an alternative for configuring your repository in the settings page.", +    fileMatch = { +      ".codeclimate.json", +    }, +    url = "https://json.schemastore.org/codeclimate.json", +  }, +  { +    description = "LLVM compilation database", +    fileMatch = { +      "compile_commands.json", +    }, +    url = "https://json.schemastore.org/compile-commands.json", +  }, +  { +    description = "Config file for Command Task Runner", +    fileMatch = { +      "commands.json", +    }, +    url = "https://json.schemastore.org/commands.json", +  }, +  { +    description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.", +    fileMatch = { +      "*.cf.json", +      "cloudformation.json", +    }, +    url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/cloudformation.schema.json", +  }, +  { +    description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.", +    fileMatch = { +      "serverless.template", +      "*.sam.json", +      "sam.json", +    }, +    url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/sam.schema.json", +  }, +  { +    description = "Json schema for properties json file for a GitHub Workflow template", +    fileMatch = { +      ".github/workflow-templates/**.properties.json", +    }, +    url = "https://json.schemastore.org/github-workflow-template-properties.json", +  }, +  { +    description = "golangci-lint configuration file", +    fileMatch = { +      ".golangci.toml", +      ".golangci.json", +    }, +    url = "https://json.schemastore.org/golangci-lint.json", +  }, +  { +    description = "JSON schema for the JSON Feed format", +    fileMatch = { +      "feed.json", +    }, +    url = "https://json.schemastore.org/feed.json", +    versions = { +      ["1"] = "https://json.schemastore.org/feed-1.json", +      ["1.1"] = "https://json.schemastore.org/feed.json", +    }, +  }, +  { +    description = "Packer template JSON configuration", +    fileMatch = { +      "packer.json", +    }, +    url = "https://json.schemastore.org/packer.json", +  }, +  { +    description = "NPM configuration file", +    fileMatch = { +      "package.json", +    }, +    url = "https://json.schemastore.org/package.json", +  }, +  { +    description = "JSON schema for Visual Studio component configuration files", +    fileMatch = { +      "*.vsconfig", +    }, +    url = "https://json.schemastore.org/vsconfig.json", +  }, +  { +    description = "Resume json", +    fileMatch = { "resume.json" }, +    url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", +  }, +} + +local function extend(tab1, tab2) +  for _, value in ipairs(tab2) do +    table.insert(tab1, value) +  end +  return tab1 +end + +local extended_schemas = extend(schemas, default_schemas) + +local opts = { +  settings = { +    json = { +      schemas = extended_schemas, +    }, +  }, +  setup = { +    commands = { +      Format = { +        function() +          vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 }) +        end, +      }, +    }, +  }, +} + +return opts diff --git a/lua/lsp/providers/sumneko_lua.lua b/lua/lsp/providers/sumneko_lua.lua new file mode 100644 index 00000000..4fee1fd1 --- /dev/null +++ b/lua/lsp/providers/sumneko_lua.lua @@ -0,0 +1,19 @@ +local opts = { +  settings = { +    Lua = { +      diagnostics = { +        globals = { "vim", "lvim" }, +      }, +      workspace = { +        library = { +          [require("utils").join_paths(get_runtime_dir(), "lvim", "lua")] = true, +          [vim.fn.expand "$VIMRUNTIME/lua"] = true, +          [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true, +        }, +        maxPreload = 100000, +        preloadFileSize = 10000, +      }, +    }, +  }, +} +return opts diff --git a/lua/lsp/providers/vuels.lua b/lua/lsp/providers/vuels.lua new file mode 100644 index 00000000..3f44275d --- /dev/null +++ b/lua/lsp/providers/vuels.lua @@ -0,0 +1,26 @@ +local opts = { +  setup = { +    root_dir = function(fname) +      local util = require "lspconfig/util" +      return util.root_pattern "package.json"(fname) or util.root_pattern "vue.config.js"(fname) or vim.fn.getcwd() +    end, +    init_options = { +      config = { +        vetur = { +          completion = { +            autoImport = true, +            tagCasing = "kebab", +            useScaffoldSnippets = true, +          }, +          useWorkspaceDependencies = true, +          validation = { +            script = true, +            style = true, +            template = true, +          }, +        }, +      }, +    }, +  }, +} +return opts diff --git a/lua/lsp/providers/yamlls.lua b/lua/lsp/providers/yamlls.lua new file mode 100644 index 00000000..156a35b0 --- /dev/null +++ b/lua/lsp/providers/yamlls.lua @@ -0,0 +1,30 @@ +local opts = { +  settings = { +    yaml = { +      hover = true, +      completion = true, +      validate = true, +      schemaStore = { +        enable = true, +        url = "https://www.schemastore.org/api/json/catalog.json", +      }, +      schemas = { +        kubernetes = { +          "daemon.{yml,yaml}", +          "manager.{yml,yaml}", +          "restapi.{yml,yaml}", +          "role.{yml,yaml}", +          "role_binding.{yml,yaml}", +          "*onfigma*.{yml,yaml}", +          "*ngres*.{yml,yaml}", +          "*ecre*.{yml,yaml}", +          "*eployment*.{yml,yaml}", +          "*ervic*.{yml,yaml}", +          "kubectl-edit*.yaml", +        }, +      }, +    }, +  }, +} + +return opts | 
