nimscripter
coc-ccls
nimscripter | coc-ccls | |
---|---|---|
3 | 53 | |
142 | 25 | |
- | - | |
5.2 | 10.0 | |
about 2 months ago | over 4 years ago | |
Nim | TypeScript | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nimscripter
-
NIR: Nim Intermediate Representation
> What does this mean? There's a runtime VM or compile time VM?
Compile time VM. It's used to run macros / templates / concepts. You can also run most code at compile time in a `static` block except for stuff that needs C calls. You can also compile the VM into a program and use it as a runtime VM (see https://github.com/beef331/nimscripter) which I do in my GUI lib. NIR should enable the compile time VM to run faster too, and possibly use JIT'ed code.
- Purpose of NimScript vs nim
-
Finally. Embed
Checkout Nim! It does much of what you describe and its great. The core language is fairly small (not quite lua simple but probably ML comparable). It compiles fast enough that a Nim repl like `inim` is useable to check features and for basic maths, though it requires a C compiler, but TCC [4] works perfectly. Essentially Nim + tcc is pretty close to your description, IMHO. Though I'm not sure TCC supports non-x86 targets.
I've never used it but Nim does support some hot reloading as well [3]. It also has a real VM if you want to run user scripts and has a nice library for it [1]. Its not quite Lua flexible but for a generally compiled language its impressive.
Recently I made a wrapper to embed access to the Nim compilers macros at runtime [2]. It took 3-4 hours probably and still compiles in 10s of seconds despite building in a fair bit of the compiler! It was useful for making a code generator for a serializer format. Though I'm not sure its small enough to live on even beefy m4/m7 microcontrollers. Though I'm tempted to try.
1: https://github.com/beef331/nimscripter
coc-ccls
-
Using CoC inlay hints
I just did a fresh reinstall of CoC, on a newer version of Neovim. I'm now seeing something I hadn't seen before, which CoC calls "inlay hints". They look like this:
-
NIR: Nim Intermediate Representation
As recommended by michaelsbradley below, I installed https://github.com/nim-lang/langserver. I'm using coc.nvim (https://github.com/neoclide/coc.nvim) so I followed the instructions here from nim langserver https://github.com/nim-lang/langserver#vimneovim and seems to be working well!
-
Perl::LanguageServer in Visual Studio. Should jumping to ambigious functions work?
Actually, I'm maintaining coc-perl (https://github.com/bmeneg/coc-perl), which enables the use of Perl LSP extension for vcode on vim/neovim using the CoC (https://github.com/neoclide/coc.nvim) backend. But it's completely on top of Perl::LanguageServer.
-
How to configure vim like an IDE
For vim specifically, I've been using coc.nvim, which works pretty well for my needs, and I know its quite popular. Another fairly popular one is YouCompleteMe, which I had taken a look at for some other languages; but ended up just using coc as I can't justify using YCM once a year (if that) -- too much "headache" for not a lot of use, you know?
-
Auto-completion problems for terraform
Plug 'https://github.com/neoclide/coc.nvim' " Auto Completion
-
I like Tabasco.
I do think VSCode is a great tool and I recommend it frequently to people, but I still want to set the record straight here. Yes, vim is obviously limited in the sense that as a CLI app it doesn't draw it's own PDF or HTML windows, that's fair. But it can remote control your favorite PDF viewer or browser for roughly the same functionality. I'm currently writing my thesis using vimtex and it's quite smooth. And all the other stuff you mention is implemented quite competently by various plugins like vim-fugitive, coc.nvim, vimspector and copilot.vim.
-
plugins for explorable interface and identifier highlighting
Sounds like you want vim-which-key and coc.nvim.
-
How to setup auto completion, etc. using LSP and stuff without bloating everything with a plugin manager?
Another option is to just download https://github.com/neoclide/coc.nvim Which is basically a one stop shop for completion, and it's pretty fast, it just uses nodejs instead of built in nvim lua functions.
-
How to survive without multiple cursors in vim
coc.nvim
-
How I set up Vim for writing LaTex, Python, C and C++?
dont over copy and paste example .vimrc, keep it simple and grow tooling as you use. for linting and code completion : https://github.com/neoclide/coc.nvim (easy to add languages)
What are some alternatives?
incbin - Include binary files in C/C++
tree-sitter - An incremental parsing system for programming tools
pyker - Python tool to convert files from a directory tree into a C header file.
nvim-cmp - A completion plugin for neovim coded in Lua.
pl_mpeg - Single file C library for decoding MPEG1 Video and MP2 Audio
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
execfs - Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file.
awesome-vscode - 🎨 A curated list of delightful VS Code packages and resources.
cdecl - Nim helper for using C Macros
coc-diagnostic - diagnostic-languageserver extension for coc.nvim
langserver - The Nim language server implementation (based on nimsuggest)
nerdtree - A tree explorer plugin for vim.