aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/atlas.lua
blob: e54dbea28f78541ad1a2f77e9508d647688966af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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' },
}