Eclipse
Eclipse

Reputation: 45493

Is there an IDE out there that does structural syntax highlighting?

Somewhat inspired by this question about a graphical programming environment. I don't think that C++ or C# are really conducive to this type of environment, but perhaps there's something halfway there.

Lot's of IDEs that I've used will use syntax highlighting to change the foreground (or even the background) colour of text for keywords, strings, comments, etc...

Are there IDEs out there that will highlight larger syntactic structures? Here's an example of what I'm thinking of.

Example code structure http://img256.imageshack.us/img256/9441/codestructure.png

(Please don't comment on my poor choice of colours... I'm not a graphic designer for a reason.)

While it's not a graphical drag-and-drop environment, the highlighting would still give an overall view of the structure of the code. Personally, learning C# after years of C++, I still catch myself tripping over the fact that at the end of a file you usually have the end of a class and the end of a namespace, so the end of a function is two-levels in. (In a C++ code file, the end of a function is usually at the top level of indentation). I help myself out there by throwing in little comments at the close brackets:

    } // end class 
} // end namespace

But it seems to me that some automatic colouring would make that completely unnecessary. Anyway, has this been done already? Bonus if it's an add-on to Visual Studio.

Upvotes: 24

Views: 1888

Answers (11)

Sam Saffron
Sam Saffron

Reputation: 131112

Coderush does structural highlighting:

alt text
(source: devexpress.com)

It quite feasible you could write your own plugin with DevExpress that achieves your exact original screen shot.

Upvotes: 7

Christian C. Salvadó
Christian C. Salvadó

Reputation: 827316

The closest thing that I've seen is Codekana, although doesn't have "background syntax-highlighting" it colorizes the different flow-control structures:


(source: codekana.com)



(source: codekana.com)

  • Red for loops
  • Green for if-blocks
  • Brown for else-blocks
  • Aquamarine for switch-blocks
  • Olive for exception blocks
  • Orange for 'return'

Upvotes: 7

nghiavt
nghiavt

Reputation: 443

allmargins extension works for me in visual studio 2010

Tool-->Exention Manager --> search for allmargins

Upvotes: 0

primfaktor
primfaktor

Reputation: 2997

There's also a free extension that at least draws the guide lines colored according to what they belong to. For instance, if guides in green and so on:
Example screenshot

It's called StructureAdornment and you can get it in the Extension Manager or from the Visual Studio Gallery.

I find it quite handy.

Upvotes: 0

fredoverflow
fredoverflow

Reputation: 263118

The current BlueJ editor does exactly what you describe:

BlueJ editor screenshot

Upvotes: 3

Brian
Brian

Reputation: 118865

I'm working on a Visual Studio extension inspired by this question. You can see what I have so far here:

http://lorgonblog.wordpress.com/2010/11/12/the-f-compiler-source-release-making-it-easy-to-write-cool-visual-studio-extensions/

Upvotes: 0

Bishoy
Bishoy

Reputation: 4025

You should try this Addin and you will never work in visual studio without it, http://www.jetbrains.com/resharper/features/index.html

PS: I'm not affiliated with this company or product but I'm an addict using it and I can never work without it, it saves me alot of time in my coding tasks and code exploration and debugging.

Upvotes: 0

jonbho
jonbho

Reputation: 215

I'm the author of Codekana. Indeed, what you describe above was the main goal for the product. BTW, I'm about to publish an article about the "making of" and the underlying technology, which is pretty nifty. It will probably be available next week (March 26, '09 or so). Recommended reading, if I may say so myself.

The reason Codekana only provides outlines, instead of a colored background, are limitations in VS's text rendering extensibility. I will hopefully be able to implement a solid-background version at some point in the future, although it will definitely require serious hacking and "rocket surgery".

I would have commented above, instead of providing another answer, but my reputation doesn't allow commenting. :(

[UPDATE: Thanks for the upvotes, now I can comment!]

Upvotes: 16

Sören Kuklau
Sören Kuklau

Reputation: 19930

I think Xcode 3 does roughly what you want, especially with Focus Follows Selection enabled. Individual blocks are highlighted as you hover over them in the sidebar.

Upvotes: 0

anon
anon

Reputation:

A nice idea. Personally, I really don't like folding editors, but this would be quite tolerable - you'd want to be able to toggle it on/off easily though. Perhaps someone has already done this for the hyper-programmable editors like vim and emacs?

Upvotes: 0

Daniel Earwicker
Daniel Earwicker

Reputation: 116674

The Visual Studio IDE does this already, but with a different visualization - you can expand and contract nested blocks by clicking the +/- buttons on the left margin.

Upvotes: 0

Related Questions