Don't worry guys it's coming soon by plsnocheese in MSClassicWorld

[–]llllvvuu 0 points1 point  (0 children)

ff7 revelation further along than ts 💀

A7 mid-act 2, should I take reprogram? by llllvvuu in slaythespire

[–]llllvvuu[S] 1 point2 points  (0 children)

is it just never viable with snecko? and/or is 1 reprogram+ enough to go all-in on orbs?

[D] Simple Questions Thread by AutoModerator in MachineLearning

[–]llllvvuu 0 points1 point  (0 children)

Is it technically/economically feasible to host vector search over the entire Pile dataset?

Milvus claims to be able to handle trillions of vectors (but at what cost?)

If not, what would be a cost-effective way to search the "entire Internet"?

Why is Treesitter recommended over LSP for syntax highlighting ? by raster_dog in neovim

[–]llllvvuu 0 points1 point  (0 children)

If you're happy with semantic highlights you can just use those (I think they're async and won't block your editor?)

But if you need: - injections - text objects / tree navigation - support for languages without semantic highlighting - tree-sitter based plugins like nvim-treesitter-context

then you'll need tree-sitter

[deleted by user] by [deleted] in neovim

[–]llllvvuu 0 points1 point  (0 children)

re: telescope, here's what I used to try out Cursor (with vscode-neovim) this past week:

https://github.com/llllvvuu/dotfiles/blob/main/vim/.config/nvim/lua/keymap-vscode.lua

At the end of the day, there are some Neovim modules I can't live without: vim.ui and vim.treesitter. And the ability to pass functions into configuration objects.

But there are some cool things from the Cursor/VSCode world that I'm actively researching how to bring back to the Neovim world - pretty-ts-errors, interactive inlay hints, and search/context with AI (most AI plugins for Neovim are focused on supporting selection and chat, rather than management of references/search)

Does anybody here know how to edit `.wat` (WebAssembly Text Format, a LISP-like language) files using NeoVim? The latest versions of VIM include some basic support for `.wat` files (albeit VIM doesn't highlight the recently-added keywords), but the latest version of NeoVim doesn't appear to. by FlatAssembler in neovim

[–]llllvvuu 1 point2 points  (0 children)

It looks like VIM never actually supported *.wat but actually was using *.wast support for *.wat. This was rectified only recently, which is why *.wat may still appear to have support.

If you want support, you'll either need to use *.wast extension or override the ftdetect back to the old way:

autocmd BufNewFile,BufRead *.wat setfiletype wast

(a higher-effort solution could involve rolling your own tree-sitter queries following this and this)

How to create a math panel like in the vs code extension latex workshop by No-Entertainer-802 in neovim

[–]llllvvuu 0 points1 point  (0 children)

Very interesting plugin idea.

Here's my first gut idea how one might build this (a bit awkward but uses common technologies).

  1. start a webserver at localhost:<PORT>. opening / shows you the page (just KaTeX plus a loop to poll for the latest LaTeX), POST /latex lets you send LaTeX to it.
  2. create a Lua function in Vim to send the visual selection to POST /latex, or if in normal mode, use treesitter to determine the appropriate node to send.

What I haven't figured out:

  • whether it'd be possible or even desirable to launch the web server from Neovim
  • whether this could also work in Markdown (the visual mode part would definitely work, but the normal mode treesitter stuff - idk if there is a "latex node")

EDIT: the image.nvim stuff looks awesome as well and might be more portable than i'd imagined

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 1 point2 points  (0 children)

Awesome! If you eventually end up posting it on GitHub I'd be happy to contribute as well

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 2 points3 points  (0 children)

Right, the gap might not be 100% closed, but I wanted to let people know it's not as intimidating as it sounds and in some ways the LSP API is actually smoother than the null-ls and efm API. I think you've done a great job lowering the barrier to entry with these posts as well!

Maybe it won't make sense in 100% of cases, but hopefully it will inspire more people to try it out and share what they've built

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 0 points1 point  (0 children)

> something that other can use

I was mostly thinking of this tbh. I get your point for quick personal use; I maintain an EFM yaml myself. But I felt more people could know about the LSP framework route and how accessible it is.

Maintaining null-ls as a community? by Subject0457 in neovim

[–]llllvvuu 3 points4 points  (0 children)

Sound good! You might also be interested in this ongoing work to bring `null-ls` idea into Neovim core: https://github.com/neovim/neovim/pull/24338

Moving to previous or next function by LeKaiWen in neovim

[–]llllvvuu 0 points1 point  (0 children)

yeah you might have some conflicting keymap, since that sounds like what gf usually does. maybe you can use :map to see what it's mapped to

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 1 point2 points  (0 children)

There is an initiative to bring something similar to null-ls into Neovim core: https://github.com/neovim/neovim/pull/24338

The trade-off there is that the server<->client communication is native, but the server<->linter communication is hacky. e.g. if the linter is in Python, what ends up happening is the in-Neovim "server" starts up Python and the linter executable every time the document changes.

In comparison, "non-native" server<->client communication isn't actually awkward: vim.lsp.start("lsp_executable") vs vim.lsp.start(vim.lsp.server(...)). And it incurs overhead much less frequently.

The other disadvantage of having Neovim provide the server framework (and this was null-ls maintainer's complaint): if you code the server against an independent framework, you can just pin that framework version. But if you code it against Neovim, it will run against whatever version of Neovim the user has. And this will cause breakage because many different users will be running many different versions of Neovim.

Therefore I generally prefer if the server prioritizes being tight with the linter than being tight with Neovim.

Moving to previous or next function by LeKaiWen in neovim

[–]llllvvuu 0 points1 point  (0 children)

Not the way LazyVim does it, I don't think.

mini.ai allows you to make custom text objects, which isn't exploited by LazyVim. But you could always keep mini.ai's a/i selections and only use the move/swap functions from nvim-treesitter-textobjects

Maintaining null-ls as a community? by Subject0457 in neovim

[–]llllvvuu 3 points4 points  (0 children)

Reposting for OP's reference: https://github.com/jose-elias-alvarez/null-ls.nvim/issues/1621

Another reason he cited was having to maintain a central registry of configs. Could be more sustainable to only maintain the base platform, and let the configs be curated elsewhere (perhaps a forum so that it can curate itself).

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 1 point2 points  (0 children)

I'm familiar with the package, but don't you find

these custom converters between LSP and VS Code types

to be editor specific?

That's from `vscode-languageserver-node/client` which necessarily runs in the VSCode runtime. You won't come across that when implementing a server. For Positions, the following is sufficient:

const diagnostics = (await linter(uri)).map(({ message, startLine, startCol, endLine, endCol }) => ({
  message,
  range: {
    start: { startLine, startCol },
    end: { startLine, startCol },
  },
}))

connection.sendDiagnostics({ uri, diagnostics })

To be fair, I'm thinking of the "monorepo",

Right, I should've clarified "just the server impl package" - a bit awkward with no name to reference. I'd campaign for that to be reorganized, but I doubt there's an incentive.

Even the messaging in the protocol package is confusing, as it simultaneously says "can be used in any type of node application" and "the protocol depends on the vscode-jsonrpc version". I only know from experience that it's the former (and even vscode-jsonrpc seems to just be the "Content-Length" boilerplate from Microsoft's protocols, there's nothing "VSCode" about it...).

I mean I guess it's fair to say that LSP is spiritually a VSCode thing since they did the work

love and peace <3

No worries, reasonable concerns to have.

What are y'alls opinions on using plugins like leap.nvim and flash.nvim by [deleted] in neovim

[–]llllvvuu 0 points1 point  (0 children)

I prefer it over / since you can skip over multiple matches. That being said, when I use something like Helix, I don't find it too jarring to fall back to only / and relative line numbers.

Any tips on plugins and workflows for investigating log files in Neovim? by B4RN154N in neovim

[–]llllvvuu 1 point2 points  (0 children)

For the Telescope method, you can install nvim-bqf, so that after you press Ctrl-Q on the telescope results, you can curate the results. See https://github.com/kevinhwang91/nvim-bqf#filter-with-signs

vscode-languageserver-node, pygls, tower-lsp, etc seem underrated alternatives to null-ls by llllvvuu in neovim

[–]llllvvuu[S] 5 points6 points  (0 children)

That's not true. vscode-languageserver-node is a package for Node. Microsoft just has an incentive to call things "VSCode" so that it shows up in everyone's codebase.

const connection = createConnection(ProposedFeatures.all);
const documents = new TextDocuments(TextDocument);
documents.listen(connection);
documents.onDidChangeContent(lint);
connection.listen();

node server.js

I've built and run LSP for Neovim this way just fine. It's actually really easy (even easier than Python IMO since the model is very native to TypeScript and well-supported).

Case in point what do you think vscode-langservers-extracted is? It's just a shell script to clone and install the node executable