summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/ada/adals.vim26
-rw-r--r--doc/ale-ada.txt30
-rw-r--r--doc/ale-supported-languages-and-tools.txt1
-rw-r--r--doc/ale.txt1
-rw-r--r--supported-tools.md1
-rw-r--r--test/command_callback/test_adals_command_callbacks.vader17
6 files changed, 76 insertions, 0 deletions
diff --git a/ale_linters/ada/adals.vim b/ale_linters/ada/adals.vim
new file mode 100644
index 00000000..9a41e1df
--- /dev/null
+++ b/ale_linters/ada/adals.vim
@@ -0,0 +1,26 @@
+" Author: Bartek Jasicki http://github.com/thindil
+" Description: Support for Ada Language Server
+
+call ale#Set('ada_adals_executable', 'ada_language_server')
+call ale#Set('ada_adals_project', 'default.gpr')
+call ale#Set('ada_adals_encoding', 'utf-8')
+
+function! ale_linters#ada#adals#GetAdaLSConfig(buffer) abort
+ return {
+ \ 'ada.projectFile': ale#Var(a:buffer, 'ada_adals_project'),
+ \ 'ada.defaultCharset': ale#Var(a:buffer, 'ada_adals_encoding')
+ \}
+endfunction
+
+function! ale_linters#ada#adals#GetRootDirectory(buffer) abort
+ return fnamemodify(bufname(a:buffer), ':p:h')
+endfunction
+
+call ale#linter#Define('ada', {
+\ 'name': 'adals',
+\ 'lsp': 'stdio',
+\ 'executable': {b -> ale#Var(b, 'ada_adals_executable')},
+\ 'command': '%e',
+\ 'project_root': function('ale_linters#ada#adals#GetRootDirectory'),
+\ 'lsp_config': function('ale_linters#ada#adals#GetAdaLSConfig')
+\})
diff --git a/doc/ale-ada.txt b/doc/ale-ada.txt
index 2ac30c0a..0fc55a9c 100644
--- a/doc/ale-ada.txt
+++ b/doc/ale-ada.txt
@@ -33,4 +33,34 @@ g:ale_ada_gnatpp_options *g:ale_ada_gnatpp_options*
===============================================================================
+ada-language-server *ale-ada-language-server*
+
+g:ale_ada_adals_executable *g:ale_ada_adals_executable*
+ *b:ale_ada_adals_executable*
+ Type: |String|
+ Default: `'ada_language_server'`
+
+ This variable can be changed to use a different executable for Ada Language
+ Server.
+
+
+g:ale_ada_adals_project *g:ale_ada_adals_project*
+ *b:ale_ada_adals_project*
+ Type: |String|
+ Default: `'default.gpr'`
+
+This variable can be changed to use a different GPR file for
+Ada Language Server.
+
+
+g:ale_ada_adals_encoding *g:ale_ada_adals_encoding*
+ *b:ale_ada_adals_encoding*
+ Type: |String|
+ Default: `'utf-8'`
+
+This variable can be changed to use a different file encoding for
+Ada Language Server.
+
+
+===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
diff --git a/doc/ale-supported-languages-and-tools.txt b/doc/ale-supported-languages-and-tools.txt
index ccedd2ad..5bbe6097 100644
--- a/doc/ale-supported-languages-and-tools.txt
+++ b/doc/ale-supported-languages-and-tools.txt
@@ -13,6 +13,7 @@ Notes:
`!!` These linters check only files on disk. See |ale-lint-file-linters|
* Ada
+ * `ada_language_server`
* `gcc`
* `gnatpp`
* Ansible
diff --git a/doc/ale.txt b/doc/ale.txt
index c5e34c87..fe94baf2 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -2587,6 +2587,7 @@ documented in additional help files.
ada.....................................|ale-ada-options|
gcc...................................|ale-ada-gcc|
gnatpp................................|ale-ada-gnatpp|
+ ada-language-server...................|ale-ada-language-server|
ansible.................................|ale-ansible-options|
ansible-lint..........................|ale-ansible-ansible-lint|
asciidoc................................|ale-asciidoc-options|
diff --git a/supported-tools.md b/supported-tools.md
index 7590e9a4..ab7eaf9f 100644
--- a/supported-tools.md
+++ b/supported-tools.md
@@ -22,6 +22,7 @@ formatting.
---
* Ada
+ * [ada_language_server](https://github.com/AdaCore/ada_language_server)
* [gcc](https://gcc.gnu.org)
* [gnatpp](https://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp) :floppy_disk:
* Ansible
diff --git a/test/command_callback/test_adals_command_callbacks.vader b/test/command_callback/test_adals_command_callbacks.vader
new file mode 100644
index 00000000..5a04594e
--- /dev/null
+++ b/test/command_callback/test_adals_command_callbacks.vader
@@ -0,0 +1,17 @@
+Before:
+ call ale#assert#SetUpLinterTest('ada', 'adals')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(Sets adals executable):
+ let g:ale_ada_adals_executable = '/path/to /Ada'
+ AssertLinter '/path/to /Ada', ale#Escape('/path/to /Ada')
+
+Execute(Sets adals encoding):
+ let b:ale_ada_adals_encoding = 'iso-8859-1'
+ AssertLSPConfig {'ada.defaultCharset': 'iso-8859-1', 'ada.projectFile': 'default.gpr'}
+
+Execute(Sets adals project):
+ let g:ale_ada_adals_project = 'myproject.gpr'
+ AssertLSPConfig {'ada.defaultCharset': 'utf-8', 'ada.projectFile': 'myproject.gpr'}