diff options
author | awy <awy@awy.one> | 2025-10-14 18:27:29 +0300 |
---|---|---|
committer | awy <awy@awy.one> | 2025-10-14 18:27:29 +0300 |
commit | de009fd679e10d053fdcc10785f91ad5317449ea (patch) | |
tree | 60918a488b579588596cf4d509fde298dccbf15d /.config/nvim/lsp/atlas.lua | |
parent | 9ea6cf81adb5d6abc59843de1db45913210f9320 (diff) | |
download | hyprdots-de009fd679e10d053fdcc10785f91ad5317449ea.tar.gz |
nvim revamp
Diffstat (limited to '.config/nvim/lsp/atlas.lua')
-rw-r--r-- | .config/nvim/lsp/atlas.lua | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/.config/nvim/lsp/atlas.lua b/.config/nvim/lsp/atlas.lua new file mode 100644 index 0000000..e54dbea --- /dev/null +++ b/.config/nvim/lsp/atlas.lua @@ -0,0 +1,66 @@ +---@brief +--- +--- https://github.com/ariga/atlas +--- +--- Language server for Atlas config and schema files. +--- +--- You may also need to configure the filetype for *.hcl files: +--- +--- ```vim +--- 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 +--- autocmd BufNewFile,BufRead *.rule.hcl set filetype=atlas-rule +--- ``` +--- +--- 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', +--- ['.*/*.rule.hcl'] = 'atlas-rule', +--- }, +--- }) +--- ``` +--- +--- 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') +--- vim.treesitter.language.register('hcl', 'atlas-rule') +--- ``` +--- + +---@type vim.lsp.Config +return { + cmd = { 'atlas', 'tool', 'lsp', '--stdio' }, + filetypes = { + 'atlas-*', + }, + root_markers = { 'atlas.hcl' }, +} |