aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/pasls.lua
blob: 61003d1b789d0a81892a147f5e5a5646251a7cb1 (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
local configs = require 'lspconfig/configs'
local util = require 'lspconfig/util'

configs.pasls = {
  default_config = {
    cmd = { 'pasls' },
    filetypes = { 'pascal' },
    root_dir = function(fname)
      return util.find_git_ancestor(fname) or util.path.dirname(fname)
    end,
  },
  docs = {
    description = [[
https://github.com/genericptr/pascal-language-server

An LSP server implementation for Pascal variants that are supported by Free Pascal, including Object Pascal. It uses CodeTools from Lazarus as backend.

First set `cmd` to the Pascal lsp binary.

Customization options are passed to pasls as environment variables for example in your `.bashrc`:
	    ```bash
export FPCDIR='/usr/lib/fpc/src',
export PP='/usr/lib/fpc/3.2.2/ppcx64',
export LAZARUSDIR='/usr/lib/lazarus',
export FPCTARGET='',
export FPCTARGETCPU='x86_64',

		```

`FPCDIR` : FPC source directory (This is the only required option for the server to work).

`PP` : Path to the Free Pascal compiler executable.

`LAZARUSDIR` : Path to the Lazarus sources.

`FPCTARGET` : Target operating system for cross compiling.

`FPCTARGETCPU` : Target CPU for cross compiling.
]],
  },
}