Results 1 to 10 of 10
Hey, So I'm looking for an editor...and I'm extremely anal about things like editors, and have a very exquisite list of 'features' that I like, and have yet to fit ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 03-09-2013 #1
Help Me Find This Perfect Editor Unicorn?
So I'm looking for an editor...and I'm extremely anal about things like editors, and have a very exquisite list of 'features' that I like, and have yet to fit the bill.
So I can use gedit for much of my general purpose editing, scripting, etc. By profession, I am a software developer. Now at work I develop in VS2012 and I despise every second of it. Though I'm not forced to use it, so offer me a good alternative!
Most of my development at work is C/C++ with dabbles of ASM on occasion. What I do at home is pretty much the same thing, maybe some Java mixed in, whatever.
But for large projects, I like more than an editor, I like an IDE...(and here's where the complications begin)
So by IDE I mean it has the following features:
- Syntax highlighting (yes, can be found anywhere, simple)
- Semantic checking (ie. it knows when something isn't grammatically correct)
- Function/member lists
- Jump to definitions
- Find usages of/references to
- (brownie points for) scoped renaming of a symbol
Now QT Creator is my editor of choice. I infrequently develop in QT, but the editor is pretty epic. It supports all of the above. The problem I ran into, which is unfortunately a problem I've run into multiple times, is that it's SUPER specific to C++. That is, the semantic checking is built in only for C++ and cannot be modified. The syntax highlighting can be modified, but it kind of ends there.
Lately I've been working with CUDA, which is an extension upon C. This caused problems right off the bat, even after I added it to the syntax XML, because:
__constant__ void ***memory
So my ideal editor/IDE would have all of those features listed above, plus the ability to add semantics and syntax ad lib, without much fuss, a standard XML setup would be perfect. I don't mine 'constructing' it, I just want it to work, even if I have to describe it in BNF definitions and the like. It would have been nice as in this imaginary editor as I could just add those keywords (which are all modifiers) to the list of modifier keywords and everything would be perfect semantically and highlighting!
I haven't dabbled in emacs much, can't say I know much about it, but it most likely can somehow do all of this... I threw it out the window the second I needed a certain setting and found the answer in a forum with Lisp code to set the setting... Now got it, stallman, emacs-lisp, good stuff - no. Fu8k that. I should not be changing settings using Lisp for the love of God.
I am a pretty decent VIM fan (GUI VIM, not the text stuff), but in my experience it doesn't scale well at all (enter plugins..). I like VIM's preferences (simple, to the point). I've attempted to use it as a main IDE with plugins for CTAGS for finding functions (which is a horrible user experience I must say, seeing your functions in ascii text), no auto-complete, obviously C/C++ syntax highlighting, no semantics checking, and find all references was none to be found.
Now semantics highlighting isn't a MUST, but it's nice to have. Think people stray from it because language definitions is a bit of a pain in the balls. Autocomplete rox, though.
Many of the aspects I've listed in this thread (article) can be found in pieces or even in majority in many applications all over the place. Besides the fact that I'm looking for them all to be in one, it's the flexibility that I'm interested in. That is to say, adding a new language should simply be creating some files and adding an extension filter for them.
So......after all of that crap I listed, anybody have any thoughts for me? .
TIA! Sorry for the long read!
I got the idea to try and use VIM as a main IDE from a guy I worked with at another job who did that. It was pretty horrific as far as I was concerned, and his method of finding all references involved a perl script....not quite there. Besides, any kind of "find all" that's not actually looking at what a symbol is is simply a find-all. SCOPED replacement or references of a symbol is where it's at!!
- 03-09-2013 #2
- 03-09-2013 #3
Well that's not the only problem. The major problem is that it doesn't offer anything over QT Creator, which I described the limitations of above. The workings of QT Creator are some of the best I've seen, I'd say they're better than Netbeans. That being said, there's still Netbeans for Java, and Netbeans for C/C++. Just like QT Creator is centered around C++. There's no flexibility in either of these programs in terms of adding additional languages..at least not as far as I can tell. Netbeans just has the added failure of choking on large projects :-\.
My last use case, which brought me here, was dealing with CUDA dev, which does some added word pre-processing. I'd be faced with the same issues if I used Netbeans.
- 03-09-2013 #4
I've never used QT Creator so I'm not in a position to comment on it but I use NetBeans mainly for PHP and it has never choked on any large projects I've thrown at it. It will also handle the PHP frameworks I use, Java and C/C++ in the same IDE as I installed the appropriate plug ins. My C knowledge is such that I play with the language occasionally so I have never thrown a large C project at it!
I don't know when you last used it but if it was V6 or earlier then it may be worth another look-see as (IMO) V7 is hugely better. All you have to lose it a bit of bandwidth & some time. What could possibly go wrong
- 03-10-2013 #5
It doesn't matter much if it's improved, as Netbeans is quite limited in the same way QT Creator is. I never heard of Netbeans for PHP but the Java and C/C++ are specific versions. Sure, you can probably add the modules to merge them, but I think it kind of ends there. Not sure if you can just make up a language (say Language A) and pop in a plug-in for it and get full semantic and syntax caveats. If you can, that'd be pretty kick-ass, though I believe it'll still have the choking problems with large projects as it had before. It may not, though.
The advantages to using Java are nice, but it does get sluggish when it has huge things to do, like most Java-written apps.
The sad part is I'm sure VIM or Emacs can do what I want it to if you know how to stretch them to their full boundaries. Those are very extensible editors and I know of a few plugins for VIM to make it work *better* - but I still can't get to the "IDE level" I want with it...and I don't really know how to use emacs extensively. Wish there was like a "solid" and "up to date" set of plugins for VIM, would certainly make things a lot easier...but alas, not the case.
- 03-10-2013 #6
Good luck with your search for the perfect unicorn.
- 03-10-2013 #7
I'll take a look at Netbeans again, I didn't know its architecture supported the blind addition of new languages, but the thing that really made me stray was how badly it choked given a huge project. It really shouldn't, I mean last I used it on this project it took like 10-15m every morning to parse the project upon opening, which is fine, I don't mind it, but they should be able to cache the symbols somewhere...but okay, so it takes a bit, fine, but my deal is that it shouldn't choke just due to project size...I mean it's not like they're all open...it really pissed me off that the whole editor was laggy, even if only one file was opened. I'll have to take a look at it again at some point .
Though otherwise, still on the hunt, not that I'm excluding it entirely, just saying. Unfortunately the cuda example where I want to add another language is only a couple thousand lines, so it's not like it'd be a good example if it choked. I'd have to try it at work or something.
- 03-10-2013 #8
Though I am not qualified for recommending a editor. Have you tried looking at Geany
I am finding that in conjuction with using SpaceFM in conjuction
with SpaceFM plugins
pretty much a time saver lately for certain tasks that only this biker uses.
Edit: The IgnorantGurus Burning Plugin using command line tools has pretty much taken the place of Brasero and K3B for me.
- 03-10-2013 #9
As for SpaceFM, I just looked at it, seems very geared towards power users and productivity, though I don't think it's going to help in the realm of development...but yeah, it could serve as a nice base if it had an editor plugin and that either could accept language modules, or they were just plugged right into that.
Thanks for the input!
- 03-11-2013 #10
So I let it parse the project, okay, I expect it to take awhile. Then I decide to see how good its syntax/semantics highlighting is...
So I open up a file, I immediately get a warning along the lines of "This file is over 1MB in size and cannot be opened safely, opening this file can result in an OutOfMemory error" - to which I laughed, and hit 'ok'.
It's been churning away for well over a minute and it still says "Loading" in the main pane. This isn't acceptable even slightly in an editor, in my opinion. It's only ~50k lines, it's not the largest one I've seen by a long shot. So yeah, Java, good to program in, horrible to use a program written in. Pretty sure it's hung btw....or at least I hope it is and still not actually loading after 5 minutes. So Netbeans isn't viable for one of the reasons I thought - confirmed. If the plugin arch does support full plug and play that would have been nice to use...but it's just too sluggish being in Java. Eclipse is bad too...but nowhere near as bad, IMO.
Note: QT Creator, Notepad++, VS2010, and VS2012 all open this file instantly, without issues.
“Fine, Java MIGHT be a good example of what a programming language should be like. But Java applications are good examples of what applications SHOULDN’T be like.”