Find the answer to your Linux question:
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.
  1. #1
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192

    Help Me Find This Perfect Editor Unicorn?


    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 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)
    • Autocomplete
    • 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:
    Code:
    __constant__ void ***memory
    isn't valid as far as the C spec it uses (not sure which off the top of my head was used for base C++). So it got the big red underline, super annoying for somebody as OCD as myself. The __constant__ modifier is a keyword provided in the CUDA extensions and is handled by a pre-processor at compilation.

    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!

    So....any ideas?

    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!

    EDIT:
    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!!

  2. #2
    Penguin of trust elija's Avatar
    Join Date
    Jul 2004
    Location
    Either at home or at work or down the pub
    Posts
    3,533
    Netbeans is my preferred IDE these days. It's refactoring skills are scary! Grab the latest from the site though as it has improved immensely over the past couple of releases.
    What do we want?
    Time machines!

    When do we want 'em?
    Doesn't really matter does it!?


    The Fifth Continent

  3. #3
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192
    Quote Originally Posted by elija View Post
    Netbeans is my preferred IDE these days. It's refactoring skills are scary! Grab the latest from the site though as it has improved immensely over the past couple of releases.
    I have used netbeans in the past and it is pretty good. The only problems are that it chokes hard on large multi-million line projects (thx Java).

    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 :-\.

    EDIT:
    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.

  4. #4
    Penguin of trust elija's Avatar
    Join Date
    Jul 2004
    Location
    Either at home or at work or down the pub
    Posts
    3,533
    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
    What do we want?
    Time machines!

    When do we want 'em?
    Doesn't really matter does it!?


    The Fifth Continent

  5. #5
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192
    Quote Originally Posted by elija View Post
    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
    Last used.....6 months ago maybe?

    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.

  6. #6
    Penguin of trust elija's Avatar
    Join Date
    Jul 2004
    Location
    Either at home or at work or down the pub
    Posts
    3,533
    Quote Originally Posted by Syndacate View Post
    Last used.....6 months ago maybe?
    That would probably be 7.something then.

    Quote Originally Posted by Syndacate View Post
    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.
    Netbeans is fully extensible using a plug in architecture so there is no reason why you couldn't write a plug-in for a specific language and give it all that functionality. There's even a plug in for plug in development! Mind you, the same can be done with many IDEs and editors, even vim.

    Quote Originally Posted by Syndacate View Post
    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 project at work was several hundred thousand lines of code, which I admit isn't the same order of magnitude, and it didn't break a sweat even on very old PC's running a long term XP install, Komodo edit on the other hand constantly warned us about potential performance issues with the code completion and strangely it does the same thing with a fresh PHP Symfony 2 project!

    Quote Originally Posted by Syndacate View Post
    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.
    I did try emacs as it is supposed to be the daddy but I didn't get on with it at all and as much as I like vim for editing config files on a server without X, I don't think I'd want to use it for all my coding.

    Good luck with your search for the perfect unicorn.
    What do we want?
    Time machines!

    When do we want 'em?
    Doesn't really matter does it!?


    The Fifth Continent

  7. #7
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192
    Quote Originally Posted by elija View Post
    That would probably be 7.something then.


    Netbeans is fully extensible using a plug in architecture so there is no reason why you couldn't write a plug-in for a specific language and give it all that functionality. There's even a plug in for plug in development! Mind you, the same can be done with many IDEs and editors, even vim.


    The project at work was several hundred thousand lines of code, which I admit isn't the same order of magnitude, and it didn't break a sweat even on very old PC's running a long term XP install, Komodo edit on the other hand constantly warned us about potential performance issues with the code completion and strangely it does the same thing with a fresh PHP Symfony 2 project!


    I did try emacs as it is supposed to be the daddy but I didn't get on with it at all and as much as I like vim for editing config files on a server without X, I don't think I'd want to use it for all my coding.

    Good luck with your search for the perfect unicorn.
    I'm not sure I could use any non-X environment all day for real dev...at least not on a large system where I can be looking at over 1k lines a day and writing...well however many I end up writing, haha. Though yeah, if I just need to edit config files, I typically just use nano/pico, as in a terminal the VIM cursor movements can be weird if it's still using the hjkl movement deal. Emacs works too if it's installed.

    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.

  8. #8
    Linux Guru rokytnji's Avatar
    Join Date
    Jul 2008
    Location
    Desert
    Posts
    4,043
    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.
    Linux Registered User # 475019
    Lead,Follow, or get the heck out of the way. I Have a Masters in Raising Hell
    Tech Books
    Free Linux Books
    Newbie Guide
    Courses at Home

  9. #9
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192
    Quote Originally Posted by rokytnji View Post
    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.
    I've actually been using Geany for this CUDA project, it's not an IDE, I think it does a bit of code parsing, which put one up on it than gedit..I can't verify right now b/c it's not on this system.

    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!

  10. #10
    Linux Newbie Syndacate's Avatar
    Join Date
    May 2012
    Location
    Hell..no literally, this state is hell..
    Posts
    192
    Quote Originally Posted by elija View Post
    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
    lol...so I tried the latest netbeans as of today (7.3 Build 201302132200) for C/C++.

    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.

    PS:

    EDIT:
    “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.”
    - Pixadel

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •