summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/lsp.lua
AgeCommit message (Collapse)Author
2026-10-12nvim: one pyright client per project, each on its own venvIgor Soarez
pyright resolves one pythonPath per server instance, so in a monorepo with a venv per service, every file was checked against whichever interpreter the single client found. The root is now the nearest pyproject.toml, falling back to the markers nvim-lspconfig uses, and the client points at the nearest .venv at or above it -- a uv workspace's shared venv covers members without one. The requested version set params.settings in before_init, which the initialize request does not carry, and looked the venv up with vim.fs.find on a name containing slashes, which 0.11 never matches and which searches down the tree rather than up. Setting config.settings there works because each client gets its own copy of the config and keeps that table as client.settings. Checked with the real config and pyright 1.1 on a mock workspace: a service with its own venv, a member using the workspace's, a requirements.txt project with none, and the workspace root each got their own client and interpreter, and each file resolved only the module installed in its own venv. From change request a48b26.
2026-10-07nvim: render markdown in the bufferIgor Soarez
render-markdown.nvim draws headings, code blocks, tables and checkboxes in place, in the one buffer, and leaves the cursor line raw so editing is unaffected; <leader>mt toggles it. The markdown and markdown_inline parsers join the install list, which also gives noice's LSP hover rendering the parsers it was already set up to use. None of the colourschemes here define the @markup.heading.N.markdown captures the plugin colours headings from, so every level rendered alike. A ramp fills them in, only where the theme left the group empty, and again on each theme switch. Checked with the real config: 26 marks on a test file, conceallevel 3, H1-H3 in distinct bold colours. AGENTS.md also stops listing nvim as having no machine-local hook: lua/local.lua is one, gitignored and loaded by cfg-watch after the plugins. From change request 12882c.
2026-09-17dotfilesIgor Soarez
Shell, editor and terminal configuration, the tools that go with them, and szecret, an age-based secret manager whose store lives elsewhere. History restarts here. What came before was not written to be read by anyone else, and carried machine names, addresses and an encrypted secret store; it is kept privately instead. What is left is meant to be safe on any machine, including one whose owner is not me: see CLAUDE.md for the rule it is written to.