26 ms·
Oni: An IDE powered by Neovim
- se7entime 9y ago'IDE powered by Neovim + React + Electron' Electron, yes Electron
- systems 9y agoso instead of say gtk, they are using electron and react for the gui bits?
- dguaraglia 9y agoRight.
- sdfin 9y agoI was wishing this was faster than atom and vscode. I'd find it attractive if somebody with a good coding reputation proposed in Kickstarter or a similar site to build something like vscode or atom, but written in Rust or C++.
- systems 9y agowell electron is 67% C++
- deleted 9y ago[deleted]
- Hyperbolic 9y agoIt's been done. https://github.com/google/xi-editor https://github.com/google/xi-editor
- beefsack 9y agoThere's some cool things to note about Xi which make me more excited about it: * It's being written by Raph Levien, known for his work on Inconsolata, Ghostscript, and font-rs[1] among other things. * The design goals include incredibly high performance, beauty, reliability and developer friendliness[2]. * It's very fast at handling large files, though the editor is still missing a lot of functionality. Raph was also interviewed on the New Rustacean podcast[3] and talks a fair bit about Xi. [1]: https://github.com/google/font-rs [2]: https://github.com/google/xi-editor#a-modern-editor-with-a-backend-written-in-rust [3]: http://www.newrustacean.com/show_notes/interview/_2/part_1/index.html
- adrianN 9y agoRather, it has been started. Xi currently is a very cool technology demo, but not a viable editor.
- raphlinus 9y agoI've just recently switched over to it for my day to day work. Admittedly there are rough edges, but I think it's fair to call it viable for sufficiently small values of viable. I expect to do a major push later in the year to polish it to the point of being really viable.
- mikerathbun 9y agoI don’t see how this would be better than just Neovim with a few plugins. I switched from Vim to Neovim and love it. Highly configurable and rock solid for everything I have asked it to do. Although I miss things like a live Markdown editor with preview like what you see in VS Code, but that is a small price to pay for ultimate control over your editor.
- nallerooth 9y agoI use this plugin for previewing markdown https://github.com/suan/vim-instant-markdown https://github.com/suan/vim-instant-markdown
- mamcx 9y agoEven better: A rendered of graphic UIs. The point about using electron is that you can use the browser to render the UI, and is filled with a lot of baggage. Imagine a UI rendered just for build UIs, not tied to JS or DOM or CSS, but able to work react-like.
- Illniyar 9y agoYou mean like react-native?
- IamCarbonMan 9y agoThat's still JS. React Native doesn't get rid of JS, it just exposes native platform APIs to JS.
- novembermike 9y agoJS isn't the problem though. V8 is pretty efficient and lightweight. The problem is that Electron pulls in all of the DOM stuff when there are lighter alternatives built into most operating systems.
- mamcx 9y ago> V8 is pretty efficient and lightweight How much lightweight? Similar to Lua?
- mamcx 9y agoYeah, but not with the full weight of node, js or (html)DOM. For the UI something like TCL or Lua or just some DSL is better.
- deleted 9y ago[deleted]
- jackmott 9y agoSublime Text
- flukus 9y agoWhat features do you want? There is Gnome Builder, KDevelop (also on windows), QtCreator, Visual Studio 2008, even vim itself. These are just some of the options.
- konart 9y agoSublime Text. Not Rust or C, but still much faster than Atom\Code. (Though I have to say Code team did a great job, it's nearly as fast as Sublime now. While Atom is still useless garbage)
- LeoNatan25 9y agoCode is nearly as fast? Try opening a 10 mb file with syntax highlighting.
- nindalf 9y agoI'm curious, is this something you do in real life is it a synthetic benchmark? Either I open code files that are a few kB (needs syntax highlighting) or I open logs (which don't). Maybe your workflow is different from the rest of us but I can attest that for my needs, VS Code is rock solid.
- LeoNatan25 9y agoI do. I have log files that I want to syntax highlight. In notepad++, this is a breeze.
- mrath 9y agonotepad++ is not that great handling big files > 100MB, given that it is written in c++ and yes unfortunately sometimes you have such large log files.
- konart 9y agoThis was one of my problems with Atom. Code works just fine even with bigger files.
- deleted 9y ago[deleted]
- chriskrycho 9y agoNot sure if you've tried this recently, but I have. Code will open e.g. my 6.3MB (unminified, unzipped) vendor.js file for an app I work on, with full syntax highlighting, instantly. And scrolling is buttery smooth in it. :)
- sam_goody 9y agoText Adept [0] Blazing fast and responsive even with 20MB+ files (in my experience), is extensible, and is cross platform. Admittedly, not a IDE, and in C instead of C++. Extensions in Lua. Not sure why it doesn't get more love. [0] https://foicica.com/textadept/ https://foicica.com/textadept/
- jackmott 9y agoyeah I was like "SOUNDS COOL!" -> click -> React+Electron -> CLOSE
- cultofmetatron 9y agoIts a great start. I'd love to have an alternative to VScode's shoddy vim mode. (tends to be buggy for me). Already the vim mode in this is pretty nice since its powered by an actual vim.
- allengeorge 9y agoI believe this was one of the stated goals of Neovim correct - that it would be easy to embed in other applications?
- tomjakubowski 9y agoA bored, enterprising Emacs hacker could totally embed NeoVim in Emacs for the evilest-mode. I wanted to do this a while back, but got stuck because nobody had yet written a messagepack implementation for Emacs Lisp. And it turned out writing one was too much like work for me to keep up with it.
- justinmk 9y agoThis racket msgpack implementation may be helpful: https://gitlab.com/HiPhish/MsgPack.rkt https://gitlab.com/HiPhish/MsgPack.rkt Though someone got started on elisp as well. https://github.com/kleesc/msgpack.el/blob/master/msgpack.el https://github.com/kleesc/msgpack.el/blob/master/msgpack.el
- pmoriarty 9y agoOne of the advantages of evil is that you can program/extend it in elisp, and evil itself is emacs-aware. I'm not sure to what extent the same would be true of neovim embedded in emacs.
- hashhar 9y agoThe Vim extension now uses neovim for running all ex commands. I guess we'll see some progress into embedding neovim into another editor.
- 9y ago
- juandazapata 9y agoI like this idea. This could help novice developers to get to know a true vim implementation instead of the half-baked vim modes available for other editors. Sadly, this is still an Electron app in the background. For comparison, my nvim install only needs 9.7MB to open a Ruby file with all my plugins loaded, while Oni requires 165MB just to open a blank file with no custom plugins.
- jackblack8989 9y agoExactly my feelings. I was excited and then saw electron and immediately hit Ctrl-w
- petre 9y ago> Sadly, this is still an Electron app in the background Same thoughts here. Nevertheless, it's nice that it uses NeoVim as its editor. I started to use Atom on a daily basis since 1.7 and 1.19 is pretty usable. Got tired of waiting for an open source editor comparable in features and functionaity to Sublime Text, but written in a lower level language such as C++, Dlang, Rust or Go compiled to native machine code. It also looks the same on every OS and has nice and original features such as automatic whitespace trimming that I haven't seen in Sublime, or a CSV editing addon for that matter. Too bad each app comes with the burden of it's very own instance of Electron.
- juandazapata 9y agoI'm glad Atom works fine for you. I was forced to use it for about 2 weeks (company machine with no installation privileges) and it broke about 5 times. For reference, I've only seen vim dying once in 10 years (seg fault).
- lunixbochs 9y agoActualVim has a similar goal and is a pretty strong PoC on top of Sublime Text (with less resource usage as a result)
- jjcm 9y agoGreat first start. Still a couple weirdisms in it I noticed from first time use (i.e. ZQ will quit the entire application, not just the file you have open), but it's nice having full macro support in an electron editor. That's definitely one of the things I was missing with vscode's vim mode.
- eptcyka 9y agoWhat's the point? Why not just make it a SPA? I really do not need another electron app running on my system, I can make vim slow enough as it is.
- tracker1 9y agoAn SPA won't have filesystem access?
- ezoe 9y agoWhy does it need to use Electron if it's using the neovim?
- cjbprime 9y agoNeovim doesn't come with a graphical interface, which this is. (Though it does come with an RPC interface for controlling it, which is how this works.)
- kurtisc 9y agoNeovim recently added a Qt interface
- masukomi 9y agoVimR is a decent graphical vim alternative that uses neovim under the covers (macOS only i think)
- adambard 9y agoFeels really nice out of the box, well done! Hope to see development continue on this one.
- extr0py 9y agoCheers, thanks for the support and words of encouragement! :)
- zzzmarcus 9y agoHere's another, very similar project, that is still actively maintained. https://github.com/rhysd/NyaoVim https://github.com/rhysd/NyaoVim
- linopolus 9y ago> Performance - no compromises, VIM is fast, and ONI should be fast too. – the Readme Yeah, that's why you use JS and Electron, right?
- SquareWheel 9y agoWhat do you mean? Javascript is incredibly fast.
- ftxrcc 9y ago"incredibly fast" What
- SquareWheel 9y agoHave you not looked at benchmarks? It's one of, if not the fastest interpreted language. V8 is baked into Electron (and Node), which means Electron can also take advantage of this speed. High memory usage I'll give you, but calling it a slow language is very misguided.
- linopolus 9y agoMy bad.. ..and that's why you use no compiled language, right?
- SquareWheel 9y agoI do use compiled languages, but there's many different tools for the job. Interpreted languages offer a number of features over compiled, and that makes it an attractive option in many situations. In the case of JS, the biggest draw is probably platform portability and the amount of existing code to utilize. That and speed, as already mentioned.
- hannofcart 9y agoWell, they could have written a neovim frontend using Ink and JS. That way you would have a declarative UI framework and be able to code in React without having to pay the penalties of having to use Electron. But alas...
- bitwize 9y agoThe new editor wars just went full retard. "Vim or Atom? Why not vim and Atom?"
- trymas 9y agoI like the idea of instead creating horrible fake implementations in other editors, there could be an IDE built on top of true (neo)vim. Though electron slightly puts off, but not only that, I expected that by default it will pick up my ~/.vimrc or ~/.nvimrc files, though it didn't. I have not read in detail, but I can see that configuration is different.
- Gaelan 9y agoThere is a config option to pick up your ~/.config/nvim/init.vim.
- v-yadli 9y agoAre you expecting another Visual Studio or IntelliJ? I think Electron is a very cost efficient dev environment. Can't really think of writing all this up in plain C++, wiring up native calls for various OSes, leveraging GPU, support rapid plugin dev/prototyping etc., etc. Once upon a time there was Qt, but now it's also doing qml+js.. Even if a NeoVim version of Eclipse (or whatever you think a 'more native IDE' is) is rolled up, by a small team comparable to oni's, are you going to _pay_ for it? Oni: 17 contributors, one main dev. IntelliJ: 249 contributors, Github fails to load stats in one minute. So why not stop complaining about the IDE and put efforts into optimizing electron-like platforms? There's still a fat headroom for improvements! (WebAssembly etc.)
- krageon 9y agoThe whole idea of electron is that it is built on top of a deeply flawed framework. I can't speak for anyone else, but I cannot see the appeal to writing for something that is broken by design.
- thanksgiving 9y agoThe problem is that, just like Java, electron wins at the end of the day in terms of market share. If we're in the business of helping people, we can do more "good" by making an inferior technology slightly more bearable. Of course, that is just one perspective (not mine but one that I'm trying to understand as well). Edit spelling
- snarfy 9y agoIt reduces software development costs, allowing more software to be written. There is plenty of software that needs to be written that doesn't exist today. Reducing costs helps with that need. The other side of that is software that already exists, running in the background unnoticed. Things like your graphics driver. You wouldn't want that written in Java. If it were written in Java you might get a lot of features faster, but it sure would perform like crap. For core software like that, development costs are secondary. Performance matters first. At the end of the day I think we need projects like neovim and oni. Editors are old technology and should be core software. Performance in my editor matters. I have five different IDEs installed and I still use vim.
- atroll 9y ago~60Mbs file size, Electron? No thanks.
- kronos29296 9y agoEverywhere I see electron apps are being written. Just yesterday saw a file manager that looks like mc which can only display 100 files and no noise support in electron. Now this. I'm speechless.
- gchp 9y agoWhile I also find the surge of electron-based application somewhat amusing, you can't deny that it has made it easier for more developers to develop cross-platform applications without having to develop and manage several codebases with different languages. I'm working on a side-project at the moment, a large part of which is a desktop application. Using electron allows me to get a cross-platform app out the door pretty quickly. If I had a team of more than one, perhaps I would consider using something else, but as long as it is just me electron just makes sense.
- keyle 9y agoThis is correct 100%. At the end of the day, it's about the productivity * developer head count. That said it still makes me sick. But what's the alternative? Lazarus? Gtk+? Yuck. AIR was looking good, but now everyone is treating it like the plague.
- e_proxus 9y agoI think what Electron brings to the table and what most other contemporary technologies fail at, is cross-platform functionality with minimal effort. In contrast to most other non-constructive comments about how Electron sucks, I think the focis should either be how to improve Electron (as mentioned by others) or on how to improve the cross-platform story for more native technologies. What makes Electron so attractive is that it is so very close to write once, run everywhere. No other technology today comes close, which I think is evident based on the number of Electron apps out there. There are some native languages which have great cross-platform stories (e.g. Go), but few of them seem have a great fronted story. Today the problem is that all major OS platforms are pushing their own framework and language walled gardens, but I think most developers would like their apps to be cross platform if they could. This is an example of where the community has to do it themselves because the major OS developers seem to have no interest in cross-platform tools. What would it take to achieve something like Electron but native? Why hasn't it been done yet?
- deleted 9y ago[deleted]
- jolux 9y agoThere's React Native, which has unofficial bindings for different desktop environments.
- izacus 9y ago"minimal effort" - that's exactly the keyword here. It allows absolute minimal effort and laziness from developer at the expense of end user. Electron is a technology that favors developer user experience over end-user user experience. And you wonder why it is hated? It's like shitty iOS cordova packaged web apps - they also require "minimum effort" and "cross-platform functionality". At the tiny expense of horrible user experience. > What would it take to achieve something like Electron but native? Why hasn't it been done yet? Are you really that ignorant? Never heard of Qt, SWT, GTK and myriad of other cross-platform tools and widgets used to develop cross-platform apps since the 80s?
- 9y ago
- vogre 9y agoEveryone is putting fingers on Electron, but I must say that the worst part of Oni is Neovim plugins. Even simple things like typescript syntax highlight don't work as expected. VSCode is maybe slower and less configurable, but it is years ahead in terms of language support at least for tsx.
- extr0py 9y agoThanks for trying it out! Yes, language support is still being actively worked on, and unfortunately the syntax highlighting isn't quite to parity (yet). If you are able to log an issue with the specific case you are seeing, that would be very helpful. It's definitely a goal of the project to be on-par with other IDEs in terms of language support, but unfortunately we aren't there yet.
- simplysh 9y agoI love that this is truly batteries-included! I've had such a bad time in the past setting up reliable omni-completion in vim. I don't know why there's so much hate for Electron, personally I think this project is great! I was waiting for something like VSCode with proper vim mode to come along.
- extr0py 9y agoAuthor here - Thanks for trying it out I had the same issue in setting up omni-completion for JavaScript and TypeScript, and wanted to save others that pain. It's crazy how much time I spent trying to get YCM to work on Windows with TypeScript... But I'm really glad it worked out of the box for you!
- simplysh 9y agoYes! It's looking really good so far, I hope you'll continue to update it!
- mmirate 9y agoMods, please append " and Electron" to the post title. Should save lots of people a click.
- invalid_ 9y agoI am still hoping micro gets plug-ins and community support. It has replaced nano and vim for basics on almost all my devices and work machines. https://github.com/zyedidia/micro https://github.com/zyedidia/micro