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 = {}
|
opts = {}
|
||||||
}, ]]
|
}, ]]
|
||||||
|
|
||||||
|
jsonls = {
|
||||||
|
format = false,
|
||||||
|
},
|
||||||
sumneko_lua = {
|
sumneko_lua = {
|
||||||
format = false, -- disable formatting all together
|
format = false, -- disable formatting all together
|
||||||
},
|
},
|
||||||
|
|
|
@ -55,6 +55,8 @@ lsp_installer.on_server_ready(function(server)
|
||||||
-- set up default cosmic options
|
-- set up default cosmic options
|
||||||
if server.name == 'tsserver' then
|
if server.name == 'tsserver' then
|
||||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.tsserver'))
|
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
|
elseif server.name == 'sumneko_lua' then
|
||||||
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.sumneko_lua'))
|
opts = vim.tbl_deep_extend('force', opts, require('cosmic.lsp.providers.sumneko_lua'))
|
||||||
end
|
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