Hacker News new | ask | show | jobs
by gravypod 3430 days ago
Let me augment that with this: I would love to donate to a project that uses ${INSERT_TERMINAL_TEXT_EDITOR} and turns it into a general IDE.

I'm talking the full shebang.

   * Autocomplete/Autoimporting (Static Analysis backed by compiler output)
   * Formatting
   * Linting
   * Fast or able to run over a slow SSH connection. 
   * Default error resolutions (if test() throws an exception generate a try { })
   * Global refactoring
   * The idea of a project (Creating, building, export/importing, libraries, dependencies)
   * Automatically generated & maintained building system at the click of a run button
   * Documentation at a single click or on hover if possible
   * Integrated console for running a project
   * File and source manager that should be easy to use
   * Binding profiles for Eclipse, NetBeans, JetBrains, VS20XX, ReSharper
Optionally these would be nice:

   * Formal Method Verification? 
   * Coloring/styling of the entire TUI
   * Simple to interact with menus
   * Rust, Go, JavaScript (Browser & Node), Java, Scala, C, C++, PHP, Python support 
   * Pluggable language support that allows the plugin to provide static analysis & compiler data
If that can all be provided that could easily sell for $25 to $50 per user and I'd be happy, happy!, to pay every last dollar of it. It'll never happen. The world will never be that kind to software developers.
3 comments

I have almost all of this in both emacs and vim and it only took me 5 years to get it just right.
Can you elaborate on how you handle the project thing? I really miss having the concept of "solution" and "project" in Vim from VS. Not just to have my files grouped logically in a $Project/{source,include}/blah.{h,cpp} tree, but also to be able to apply per-project settings like clang-complete options, etc. Right now I don't see a way to have e.g. three different projects that all build from the same files, but use different build options (mainly third-party sdk versions) and thus should give me different completions and code navigation.
Part of why I switched to emacs was something called helm: https://tuhdo.github.io/helm-intro.html It fuzzy matches almost anything: files, function names, or commands

Project grouping in the traditional sense can be done with projectile and NeoTree. http://projectile.readthedocs.io/en/latest/ https://github.com/jaypei/emacs-neotree/blob/dev/README.md

I think what you are describing in the second half can be handled with company mode and triggering a major/minor mode off a file extension. https://www.gnu.org/software/emacs/manual/html_node/emacs/Ma...

http://company-mode.github.io

If that's not it it's possible Googling will find exactly what you describe. People tend to port anything useful from any editor to emacs.

There's been "distros" of popular editors like Emacs and Vim aiming to provide this functionality. Spacemacs is one, and there's another one for Vim.
I heard good things about http://vim.spf13.com/