From acb88a4872033fddd8c2fe7e6251bc17ee4d2168 Mon Sep 17 00:00:00 2001 From: mineo Date: Sun, 5 Jan 2025 17:33:52 +0900 Subject: feat: atlas language server (#3539) * feat: atlas added autocmd add stdio option * docs: added vim.filetype.add pattern --- lua/lspconfig/configs/atlas.lua | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lua/lspconfig/configs/atlas.lua (limited to 'lua') diff --git a/lua/lspconfig/configs/atlas.lua b/lua/lspconfig/configs/atlas.lua new file mode 100644 index 00000000..b862f3d7 --- /dev/null +++ b/lua/lspconfig/configs/atlas.lua @@ -0,0 +1,54 @@ +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', + }, +}) +``` + +]], + }, +} -- cgit v1.2.3-70-g09d2