diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/after/ftplugin/PKGBUILD.lua | 3 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/plugins/lint.lua | 14 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/filetype.lua | 1 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/configs.lua | 7 | ||||
-rwxr-xr-x | nvim/.local/bin/pkgbuildcheck | 189 |
5 files changed, 109 insertions, 105 deletions
diff --git a/nvim/.config/nvim/after/ftplugin/PKGBUILD.lua b/nvim/.config/nvim/after/ftplugin/PKGBUILD.lua index 3c844d9..d1a6bb6 100644 --- a/nvim/.config/nvim/after/ftplugin/PKGBUILD.lua +++ b/nvim/.config/nvim/after/ftplugin/PKGBUILD.lua @@ -1 +1,2 @@ -vim.opt_local.tabstop = 2 +vim.cmd("runtime! ftplugin/sh.{vim,lua}") +vim.treesitter.language.register("bash", { "PKGBUILD" }) diff --git a/nvim/.config/nvim/lua/plugins/lint.lua b/nvim/.config/nvim/lua/plugins/lint.lua index f2b3cfc..09fb0fa 100644 --- a/nvim/.config/nvim/lua/plugins/lint.lua +++ b/nvim/.config/nvim/lua/plugins/lint.lua @@ -60,18 +60,6 @@ local M = { })[1] end, }, - shellcheck = { - condition = function() - return not vim.api.nvim_buf_get_name(0):match(".*/PKGBUILD$") - end, - }, - pkgbuildcheck = { - extend = "shellcheck", - cmd = "pkgbuildcheck", - condition = function() - return vim.api.nvim_buf_get_name(0):match(".*/PKGBUILD$") - end, - }, }, }, } @@ -87,7 +75,7 @@ function M:config(opts) local lint = require("lint") lint.linters_by_ft = opts.linters_by_ft vim.iter(opts.linters):each(function(name, linter) - linter = vim.tbl_deep_extend("keep", linter, require("lint").linters[linter.extend or name] or {}, { + linter = vim.tbl_deep_extend("keep", linter, require("lint").linters[name] or {}, { args = {}, prepend_args = {}, }) diff --git a/nvim/.config/nvim/lua/tobyvin/filetype.lua b/nvim/.config/nvim/lua/tobyvin/filetype.lua index 2f288e9..f82e6b9 100644 --- a/nvim/.config/nvim/lua/tobyvin/filetype.lua +++ b/nvim/.config/nvim/lua/tobyvin/filetype.lua @@ -6,6 +6,7 @@ vim.filetype.add({ service = "systemd", }, filename = { + PKGBUILD = "PKGBUILD", tridactylrc = "trytactylrc", }, pattern = { diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua b/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua index 8c59719..d3cf99d 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/configs.lua @@ -2,6 +2,7 @@ local ms = vim.lsp.protocol.Methods local M = { bashls = { + filetypes = { "sh", "PKGBUILD" }, settings = { bashIde = { explainshellEndpoint = "https://explainshell.com", @@ -11,6 +12,12 @@ local M = { }, }, }, + ---@type fun(new_config: lspconfig.options.bashls, new_root_dir: any) + on_new_config = function(new_config, new_root_dir) + if require("lspconfig").util.path.join(new_root_dir, "PKGBUILD") then + new_config.settings.bashIde.shellcheckPath = "pkgbuildcheck" + end + end, }, biome = { capabilities = { diff --git a/nvim/.local/bin/pkgbuildcheck b/nvim/.local/bin/pkgbuildcheck index af2bc39..090d8e1 100755 --- a/nvim/.local/bin/pkgbuildcheck +++ b/nvim/.local/bin/pkgbuildcheck @@ -1,99 +1,106 @@ #!/bin/sh +# shellcheck disable=SC2086 -{ - cat <<-EOF - #!/bin/bash -euET +for arg; do + if [ -f "$arg" ]; then + file=$arg + elif [ "$arg" != "-" ]; then + set -- "$@" $arg + fi + shift +done - # declare variables used by PKGBUILD - srcdir='~!@#$%^&*() /\|' - pkgdir='~!@#$%^&*() /\|' +shellcheck "$@" --format=json - <<-EOF | jq -Mc '(..|objects|select(has("line"))).line -= 7 | (..|objects|select(has("endLine"))).endLine -= 7' + #!/bin/bash -euET - # the actual PKGBUILD gets inlined by RUA here + # declare variables used by PKGBUILD + srcdir='~!@#$%^&*() /\|' + pkgdir='~!@#$%^&*() /\|' - $(cat) + # the actual PKGBUILD gets inlined by RUA here + $(cat $file) - # ensure that obligatory PKGBUILD values are defined, and avoid "unused" warning for them: - test "\${pkgname[*]} should be declared in PKGBUILD" - test "\${pkgver[*]} should be declared in PKGBUILD" - test "\${pkgrel[*]} should be declared in PKGBUILD" - test "\${arch[*]} should be declared in PKGBUILD" + # ensure that obligatory PKGBUILD values are defined, and avoid "unused" warning for them: + test "\${pkgname[*]} should be declared in PKGBUILD" + test "\${pkgver[*]} should be declared in PKGBUILD" + test "\${pkgrel[*]} should be declared in PKGBUILD" + test "\${arch[*]} should be declared in PKGBUILD" - # avoid "unused" warning for optional PKGBUILD variables: - export pkgbase - export epoch - export pkgdesc - export url - export license - export install - export changelog - export source - export source_aarch64 - export source_i686 - export source_x86_64 - export validpgpkeys - export noextract - export md5sums - export md5sums_aarch64 - export md5sums_i686 - export md5sums_x86_64 - export sha1sums - export sha1sums_aarch64 - export sha1sums_i686 - export sha1sums_x86_64 - export sha224sums - export sha224sums_aarch64 - export sha224sums_i686 - export sha224sums_x86_64 - export sha256sums - export sha256sums_aarch64 - export sha256sums_i686 - export sha256sums_x86_64 - export sha384sums - export sha384sums_aarch64 - export sha384sums_i686 - export sha384sums_x86_64 - export sha512sums - export sha512sums_aarch64 - export sha512sums_i686 - export sha512sums_x86_64 - export b2sums - export b2sums_aarch64 - export b2sums_i686 - export b2sums_x86_64 - export groups - export backup - export depends - export depends_aarch64 - export depends_i686 - export depends_x86_64 - export makedepends - export makedepends_aarch64 - export makedepends_i686 - export makedepends_x86_64 - export checkdepends - export checkdepends_aarch64 - export checkdepends_i686 - export checkdepends_x86_64 - export optdepends - export optdepends_aarch64 - export optdepends_i686 - export optdepends_x86_64 - export conflicts - export conflicts_aarch64 - export conflicts_i686 - export conflicts_x86_64 - export provides - export provides_aarch64 - export provides_i686 - export provides_x86_64 - export replaces - export replaces_aarch64 - export replaces_i686 - export replaces_x86_64 - export options + # avoid "unused" warning for optional PKGBUILD variables: + export pkgbase + export epoch + export pkgdesc + export url + export license + export install + export changelog + export source + export source_aarch64 + export source_i686 + export source_x86_64 + export validpgpkeys + export noextract + export md5sums + export md5sums_aarch64 + export md5sums_i686 + export md5sums_x86_64 + export sha1sums + export sha1sums_aarch64 + export sha1sums_i686 + export sha1sums_x86_64 + export sha224sums + export sha224sums_aarch64 + export sha224sums_i686 + export sha224sums_x86_64 + export sha256sums + export sha256sums_aarch64 + export sha256sums_i686 + export sha256sums_x86_64 + export sha384sums + export sha384sums_aarch64 + export sha384sums_i686 + export sha384sums_x86_64 + export sha512sums + export sha512sums_aarch64 + export sha512sums_i686 + export sha512sums_x86_64 + export b2sums + export b2sums_aarch64 + export b2sums_i686 + export b2sums_x86_64 + export groups + export backup + export depends + export depends_aarch64 + export depends_i686 + export depends_x86_64 + export makedepends + export makedepends_aarch64 + export makedepends_i686 + export makedepends_x86_64 + export checkdepends + export checkdepends_aarch64 + export checkdepends_i686 + export checkdepends_x86_64 + export optdepends + export optdepends_aarch64 + export optdepends_i686 + export optdepends_x86_64 + export conflicts + export conflicts_aarch64 + export conflicts_i686 + export conflicts_x86_64 + export provides + export provides_aarch64 + export provides_i686 + export provides_x86_64 + export replaces + export replaces_aarch64 + export replaces_i686 + export replaces_x86_64 + export options - # avoid "unused" warning for variables defined _for_ PKGBUILD - export srcdir - export pkgdir - EOF -} | shellcheck "$@" + # avoid "unused" warning for variables defined _for_ PKGBUILD + export srcdir + export pkgdir +EOF |