first version of my Effect file editor

Started by
7 comments, last by thomasvantroyen 12 years, 2 months ago
Hey,

As I found existing HLSL editors overly complicated (FX Composer), outdated (Render Monkey) or unavailable, I decided to make a Visual Studio Code Editor inspired HLSL Editor.

Now, I don't say FX Composer is bad, but it's just very complex. I wanted something lightweight that easily integrates into the programming process with nothing but the most obvious features: syntax colouring, code completion (the more the better), visualizing errors and maybe a simple test-on-sphere renderview.

It's been like only 15 hours of work so far so it's not finished yet but thanks to the great AvalonEdit it has my priority features in it already:
* syntax highlighting
* code completion using Alt+Space for intrinsic HLSL functions (could be much better, but that requires a lot of context-parsing work)
* compiling using DirectX 10 with error listing and marking errors in the code when double clicked.
* filewatcher: EffectEd detects when you modified the open file in another application
* opens files from commandline argument: when "*.fx" is correctly associated to EffectEd, opening an effect file from Explorer or VS.NET will automatically open EffectEd with the requested file.

EffectEd v1.0

screenshot.gif

As I don't want to spend time yet to integrate it into VS.NET, you can associate the .fx extension in Visual Studio Solution Explorer by right clicking any fx file and choose "Open with...". In there, you can configure EffectEd to be the default for .fx files.

All is still experimental but I thought I could share it as it is to get your thoughts and ideas. Or to find out if I'm making something that already exists (and is still available)

cheers.
Advertisement
That's a great start! I have been wanting such a lightweight editor for some time, but haven't put the effort into building one. Are you considering making this an open source project?

Here are a couple of comments / feature requests:

  1. I couldn't get the auto-completion to work - any time I pressed alt it jumped to the menu.
  2. Can you add profiles for the individual shader types? I often write shaders in standalone files and then combine them myself in my engine...
  3. Similar to #2, the file extension *.hlsl would be a good addition too...

It looks great so far, and I can't wait to see where you take it!
It looks like the auto-complete features are Ctrl+Space not Alt+Space smile.png

A comment of my own (kinda picky though):

I don't like how you *have* to have the template FX file for the program to load, or when you create a new file to work with, it automatically uses the "new.fx" template rather than creates a blank space to work in.

It's a good start though, most of what is out there are syntax highlighters (e.g. NShader). I think one of the SlimDX devs was working on something that also had intellisense, but I don't think he ever released. So yeah, there's definately use out there for a lightweight editor (or VS plugin) that not only has highlighting, but auto-complete features and built-in compilation w/ error logging.
I intend to make it resemble VS.NET so it feels familiar, so, code completion is Ctrl+Space indeed.

I'm not going to put a whole lot of effort in it, I'm a noob at DirectX and want to do game programming in the end.. But I'll work on it along the way as I acquire more need of features and when it's getting somewhere, I will put it in an opensource project some place. I'll let you know.

Your suggestions are very welcome, feature 2 of Jazon Z could use some elaboration about that particular use case, though. (remember: i'm a novice) I was thinking about a template choice dialog so, if I understand your request well, having specific templates for things like you mentioned, could be handy. (you may always send me some to elaborate)
What I mean is that you are currently allowing the selection of each of the fx_y_z profiles, but not the individual shader program compile targets, such as cs_5_0 or vs_4_0 for example. I normally compile these individually in my D3D11 engine, so they are typically found in their own files (at least thats how I do it).
Very good, this should be useful :P
Still working on it: it was a bunch of testlogic stitched together... so, during the weekends, I'm busy refactoring it into a decent piece of software and making about every aspect configurable through Xml. Don't expect wonders, I'm running low on spare time.

Pitty my life is stuffed with developing boring business software at daytime :)

Anyway, as soon as this batch of features is done, it's going public.. Then, I still have some big ideas, but I'll let it rest a bit then, see what the community thinks.
How did you make the synatax highlighting work? Did you write that part yourself, or use something else?
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!
The central editing component is the open source "AvalonEdit", this provides easily configurable syntax highlighting based on regular expressions, very easy.

This project has grown, btw: http://effected.codeplex.com

If you need help, just contact me through the codeplex page or something...

greetings

This topic is closed to new replies.

Advertisement