Repository navigation
Releases: dskst/souther.nvim
Releases · dskst/souther.nvim
Release list
v0.1.0
Added
- Filetype detection for
.soufiles, inftdetect/so that a plugin manager
can defer the plugin onft = "souther". - Buffer settings matching the VS Code extension (
//comments, 4-space indent). souther-lspwiring viavim.lsp.config, launched assouther lspfrom
PATHor asjava -Xss4m -jarwhencmdpoints at a jar.syntax/souther.vim, a fallback for the seconds before the JVM server
attaches, for buffers it never attaches to, and for machines without
southerinstalled. It also coversfake/example/examples for,
which souther-lsp currently reports as plain variables.require("souther").jar_cmd()for building the jar command, and
require("souther").root()for inspecting root resolution.:checkhealth southerreporting Neovim version, the command the client will
run, the Java runtime, the adequacy option and the resolved workspace root.- Unit tests (plenary) and CI for Neovim stable and nightly, with all actions
pinned to commit SHAs. Integration tests run weekly as well as on tags,
because souther-lsp moves independently of this plugin.
Notes on the design
cmdis a plain list rather than a function, socmd_envandcmd_cwd
reach the server and:checkhealth vim.lspcan show the command.- The workspace root is resolved upward to the outermost build file, bounded
by.git. souther-lsp compiles every.souunder its root as one flat
module set and does not read build files, so the nearest build file is the
wrong answer in a multi-module tree. - There is no
setup().vim.lsp.configis the single configuration surface. lsp/souther.luaasserts the values it pulls out oflua/souther/. A nil
raises nothing on its own --vim.deepcopy(nil)is nil and a nil value drops
its key from the table -- so the client would otherwise start with nocmd
at all, visible only as "cmd is a nil" in:checkhealth souther. That check
now reports a missingcmdas an error, with the stale module cache and the
duplicate runtimepath entry named as the causes.