aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/configs/openedge_ls.lua
blob: 37bb1127bf9e3ce7e86a1eeb843dce8e15242922 (plain) (blame)
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
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- 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 = {
    filetypes = { 'progress' },
    root_dir = util.root_pattern 'openedge-project.json',
    on_new_config = function(config)
      if not config.cmd and config.oe_jar_path then
        config.cmd = {
          'java',
        }
        config.cmd[#config.cmd + 1] = '-jar'
        config.cmd[#config.cmd + 1] = config.oe_jar_path
        if config.debug then
          config.cmd[#config.cmd + 1] = '--debug'
        end
        if config.trace then
          config.cmd[#config.cmd + 1] = '--trace'
        end
      end
    end,
  },
  docs = {
    description = [[
[Language server](https://github.com/vscode-abl/vscode-abl) for Progress OpenEdge ABL.

For manual installation, download abl-lsda.jar from the [VSCode extension](https://github.com/vscode-abl/vscode-abl/releases/latest).

Configuration

```lua
require('lspconfig').openedge_ls.setup {
  oe_jar_path = '/path/to/abl-lsda.jar',
  debug = false, -- Set to true for debug logging
  trace = false, -- Set to true for trace logging (REALLY verbose)
  init_options = {
    abl = {
      configuration = {
        runtimes = {
          { name = '12.8', path = '/opt/progress/dlc' }
        },
        maxThreads = 1
      },
      completion = {
        upperCase = false
      },
      buildMode = 1 -- Build all
    }
  }
}
```
]],
  },
}