76 lines
2.5 KiB
Lua

-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- This config is DEPRECATED.
-- Use the configs in `lsp/` instead (requires Nvim 0.11).
--
-- ALL configs in `lua/lspconfig/configs/` will be DELETED.
-- They exist only to support Nvim 0.10 or older.
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
local util = require 'lspconfig.util'
return {
default_config = {
cmd = { 'atlas', 'tool', 'lsp', '--stdio' },
filetypes = {
'atlas-*',
},
root_dir = function(fname)
return util.root_pattern('atlas.hcl')(fname)
end,
single_file_support = true,
},
docs = {
description = [[
https://github.com/ariga/atlas
Language server for Atlas config and scheme files.
You may also need to configure the filetype for *.hcl files:
`autocmd BufNewFile,BufRead atlas.hcl set filetype=atlas-config`
`autocmd BufNewFile,BufRead *.my.hcl set filetype=atlas-schema-mysql`
`autocmd BufNewFile,BufRead *.pg.hcl set filetype=atlas-schema-postgresql`
`autocmd BufNewFile,BufRead *.lt.hcl set filetype=atlas-schema-sqlite`
`autocmd BufNewFile,BufRead *.ch.hcl set filetype=atlas-schema-clickhouse`
`autocmd BufNewFile,BufRead *.ms.hcl set filetype=atlas-schema-mssql`
`autocmd BufNewFile,BufRead *.rs.hcl set filetype=atlas-schema-redshift`
`autocmd BufNewFile,BufRead *.test.hcl set filetype=atlas-test`
`autocmd BufNewFile,BufRead *.plan.hcl set filetype=atlas-plan`
or
```lua
vim.filetype.add({
filename = {
['atlas.hcl'] = 'atlas-config',
},
pattern = {
['.*/*.my.hcl'] = 'atlas-schema-mysql',
['.*/*.pg.hcl'] = 'atlas-schema-postgresql',
['.*/*.lt.hcl'] = 'atlas-schema-sqlite',
['.*/*.ch.hcl'] = 'atlas-schema-clickhouse',
['.*/*.ms.hcl'] = 'atlas-schema-mssql',
['.*/*.rs.hcl'] = 'atlas-schema-redshift',
['.*/*.test.hcl'] = 'atlas-test',
['.*/*.plan.hcl'] = 'atlas-plan',
},
})
```
Optionally, tell treesitter to treat Atlas filetypes as HCL for better syntax highlighting:
```lua
vim.treesitter.language.register('hcl', 'atlas-config')
vim.treesitter.language.register('hcl', 'atlas-schema-mysql')
vim.treesitter.language.register('hcl', 'atlas-schema-postgresql')
vim.treesitter.language.register('hcl', 'atlas-schema-sqlite')
vim.treesitter.language.register('hcl', 'atlas-schema-clickhouse')
vim.treesitter.language.register('hcl', 'atlas-schema-mssql')
vim.treesitter.language.register('hcl', 'atlas-schema-redshift')
vim.treesitter.language.register('hcl', 'atlas-test')
vim.treesitter.language.register('hcl', 'atlas-plan')
```
]],
},
}