feat(lsp): jsonls schemas
This commit is contained in:
parent
7232abb157
commit
1d09e75d0f
3 changed files with 187 additions and 0 deletions
|
@ -23,6 +23,9 @@ local default_config = {
|
|||
opts = {}
|
||||
}, ]]
|
||||
|
||||
jsonls = {
|
||||
format = false,
|
||||
},
|
||||
sumneko_lua = {
|
||||
format = false, -- disable formatting all together
|
||||
},
|
||||
|
|
|
@ -55,6 +55,8 @@ lsp_installer.on_server_ready(function(server)
|
|||
-- set up default cosmic options
|
||||
if server.name == 'tsserver' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.tsserver'))
|
||||
elseif server.name == 'jsonls' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.jsonls'))
|
||||
elseif server.name == 'sumneko_lua' then
|
||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.sumneko_lua'))
|
||||
end
|
||||
|
|
182
lua/cosmic/lsp/providers/jsonls.lua
Normal file
182
lua/cosmic/lsp/providers/jsonls.lua
Normal file
|
@ -0,0 +1,182 @@
|
|||
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 opts = {
|
||||
settings = {
|
||||
json = {
|
||||
schemas = schemas,
|
||||
},
|
||||
},
|
||||
setup = {
|
||||
commands = {
|
||||
Format = {
|
||||
function()
|
||||
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line('$'), 0 })
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return opts
|
Loading…
Add table
Reference in a new issue