summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorNathan Henrie <n8henrie@users.noreply.github.com>2023-02-07 01:24:52 -0700
committerGitHub <noreply@github.com>2023-02-07 17:24:52 +0900
commite1ae009bac98d4c2a80ed8f70f68b75dab3bc478 (patch)
tree01f25b7745064f3042e6db9b1412ac4e1d0423d6 /autoload
parent45a3e3f574172028338de70ce8f8f606dec0a1b0 (diff)
downloadale-e1ae009bac98d4c2a80ed8f70f68b75dab3bc478.zip
Add alejandra for nix (#4435)
- Fixes https://github.com/dense-analysis/ale/issues/4434
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/fix/registry.vim5
-rw-r--r--autoload/ale/fixers/alejandra.vim13
2 files changed, 18 insertions, 0 deletions
diff --git a/autoload/ale/fix/registry.vim b/autoload/ale/fix/registry.vim
index 7040c4cc..b3275a32 100644
--- a/autoload/ale/fix/registry.vim
+++ b/autoload/ale/fix/registry.vim
@@ -7,6 +7,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['python'],
\ 'description': 'Add blank lines before control statements.',
\ },
+\ 'alejandra': {
+\ 'function': 'ale#fixers#alejandra#Fix',
+\ 'suggested_filetypes': ['nix'],
+\ 'description': 'The Uncompromising Nix Code Formatter',
+\ },
\ 'align_help_tags': {
\ 'function': 'ale#fixers#help#AlignTags',
\ 'suggested_filetypes': ['help'],
diff --git a/autoload/ale/fixers/alejandra.vim b/autoload/ale/fixers/alejandra.vim
new file mode 100644
index 00000000..3844e8c0
--- /dev/null
+++ b/autoload/ale/fixers/alejandra.vim
@@ -0,0 +1,13 @@
+call ale#Set('nix_alejandra_executable', 'alejandra')
+call ale#Set('nix_alejandra_options', '')
+
+function! ale#fixers#alejandra#Fix(buffer) abort
+ let l:executable = ale#Var(a:buffer, 'nix_alejandra_executable')
+ let l:options = ale#Var(a:buffer, 'nix_alejandra_options')
+
+ return {
+ \ 'command': ale#Escape(l:executable)
+ \ . (empty(l:options) ? '' : ' ' . l:options)
+ \ . ' -- -'
+ \}
+endfunction