nimscripter
nimscripter | vscode-nim | |
---|---|---|
3 | 5 | |
142 | 179 | |
- | - | |
5.2 | 4.1 | |
about 2 months ago | about 2 months ago | |
Nim | Nim | |
MIT License | GNU General Public License v3.0 or later |
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
vscode-nim
-
NIR: Nim Intermediate Representation
You may fare better hooking VSCode to nimlangserver:
https://github.com/saem/vscode-nim#nim-lanugage-server-integ...
-
Nimlangserver Announcement
nimlangserver is an implementation of Language Server Protocol with the goal to make nim IDE experience more mature. The main difference between nimlangserver and the existing nimlsp is that nimlangserver runs nimsuggest in a separate process and that nimlangserver is using a newly introduced version of nimsuggest v3(see bellow). nimlangserver is currently integrated in VScode via vscode-nim and in Emacs via lsp-mode but adding integraion with other editors should be trivial.
-
what nim needs to grow in popularity
admittedly the editor support is far away from perfect, but that particular issue just sounds like https://github.com/saem/vscode-nim/issues/80
-
Nim Version 1.6 Released
To all those wondering about IDE support , the actively maintained VSCode extension is :
https://github.com/saem/vscode-nim
The default extension suggested by VSCode which have over 43k downloads in un-maintained for Eons and it won't work.
Here is the link : https://marketplace.visualstudio.com/items?itemName=nimsaem....
@dom96 can you pin this somewhere on the forum or website ?
-
If you highlight proc definition with bold Nim code is much easier to read
UPDATE: improved highlighting rules you would get this code highligting more details https://github.com/saem/vscode-nim/issues/49
What are some alternatives?
incbin - Include binary files in C/C++
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
pyker - Python tool to convert files from a directory tree into a C header file.
karax - Karax. Single page applications for Nim.
pl_mpeg - Single file C library for decoding MPEG1 Video and MP2 Audio
INim - Interactive Nim Shell / REPL / Playground
execfs - Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file.
jester - A sinatra-like web framework for Nim.
cdecl - Nim helper for using C Macros
norm - A Nim ORM for SQLite and Postgres
langserver - The Nim language server implementation (based on nimsuggest)