fzf.el
c2nim
fzf.el | c2nim | |
---|---|---|
7 | 7 | |
347 | 489 | |
- | -0.2% | |
1.3 | 4.1 | |
7 months ago | 6 months ago | |
Emacs Lisp | Nim | |
GNU General Public License v3.0 only | 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.
fzf.el
-
Fuzzy Finding with Emacs Instead of Fzf
Another alternative is fzf.el [1] which properly wraps fzf.
[1] https://github.com/bling/fzf.el
-
Fuzzy Finding with Emacs Instead of fzf
I have a similar flow. FYI bling's fzf wrapper provides fzf-with-command to work around this limitation
-
M-x find-dired-name
E.g.: https://github.com/bling/fzf.el
-
Find only directory recursively in emacs
I have tried `find-name-dired`, `find-dired`, `find-grep-dired`, https://github.com/bling/fzf.el `fzf-directory` function, etc., but can find the functionality. I tried searching for some variable change in emacs but could not find one. Thanks for your help.
-
How do you use helm-find-files? Because I am clearly doing it wrong.
I think this exists for ivy (counsel-file-jump) and you can also do it via ido ; I think most of the time you don’t want to search in all sub dirs because it can take a long time to search through. For situations where performance can be an issue you can use fzf again via ivy / counsel or https://github.com/bling/fzf.el
-
ffipf - quickly jump to file in a project with a native module
True. I checked and there are such packages already: https://github.com/bling/fzf.el
c2nim
-
I learned 7 programming languages so you don't have to
Also on the game development front, I maintain a raylib wrapper https://github.com/planetis-m/naylib As long utilities like c2nim https://github.com/nim-lang/c2nim exist, it's trivial to create bindings of C/C++ libraries. One thing I want to experiment more is making it more automatic by writing a callback exposed by c2nim that transform the generated code using Nim's AST. But regardless in that project I was able to write safe language abstractions on top of the bindings that provide a more native experience. It has scope-based memory management, generics and ... function overloading.
-
The way integrate Rust into Nim
Rust also has a library called safer_ffi that makes FFI easier, and I tried to use that, but the library seems to be immature, and I could not get arguments in Rust functions. If this library can be used properly, it will be possible to output C header files from Rust functions and automatically generate Nim interface functions from C header files using c2nim. We look forward to further development of this feature.
-
Checked C
Well I'm 99.5% certain at least. Even now I'm uncertain of the C syntax. And I've not been bold enough to test 3rd order C function pointers. I figure that's probably C code you don't wanna touch if possible.
https://github.com/nim-lang/c2nim/blob/11f2c5363dfe7e8c7c8ce...
The other annoying one is that "signed" and "unsigned" are basically adjectives, but "long" can be both a type and a modifier. So it's difficult to parse unless you're the target C compiler. Technically you can, but you have to use backtracking.
-
Nim -- a modern "glue" language like Python
c2nim is a tool to translate ANSI C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand after the translation process. If you are tired of wrapping C library, you can try futhark which supports "simply import C header files directly into Nim". Similar to futhark, cinterop allows one to interop with C/C++ code without having to create wrappers. nimLUA is a glue code generator to bind Nim and Lua together using Nim's powerful macro. nimpy and nimporter is a bridge between Nim and Python. rnim is a bridge between R and Nim. nimjl is a bridge between Nim and Julia! Last but not least, genny generates a shared library and bindings for many languages such as Python, Node.js, C.
-
Genny – Generate Nim library bindings for many languages
Now if only a full binding generator for C and C++ headers to Nim was done, the language would really be cooking!
"What do you mean, Nim has two of these already?"
Yeah, I know, and -- not to hurt anyone's feelings -- but: they kind of suck. And there's no way I see them able to be extended to do the job fully, based on the way they're currently built.
Those are some bold claims to make!
So before I get stoned to death (no offense to the authors, I am grateful that they exist and have used them both) let me attempt an explanation and back up these statements.
---
To start off, the two tools available are "c2nim" and "nimterop". c2nim is a Nim official library, while nimterop is a community library.
https://github.com/nim-lang/c2nim
-
ffipf - quickly jump to file in a project with a native module
Yes. Nim compiles to C and has a lot of features for interacting with C code. You can easily call C routines from Nim and Nim functions from C. There's a bit of a ceremony you need to go through, but most of it can be automated with c2nim tool: https://github.com/nim-lang/c2nim
- C2nim: A tool to translate ANSI C code to Nim
What are some alternatives?
nim-emacs-module
nimterop - Nimterop is a Nim package that aims to make C/C++ interop seamless
fuzzy_file_finder - A (slightly enhanced) implementation of TextMate's cmd-T lookup functionality, in Ruby, for embedding in other projects
futhark - Automatic wrapping of C headers in Nim
fzel - An example of how an FZF style completer could be implemented in GNU Emacs
nimLUA - glue code generator to bind Nim and Lua together using Nim's powerful macro
projectile - Project Interaction Library for Emacs
cinterop - A C/C++ interop library for the Nim programming language
emacs.d - forest
genny - Generate a shared library and bindings for many languages.
tinycc - Unofficial mirror of mob development branch