Page 1 of 1

Visual Studio Code & Shaders

Posted: Tue May 30, 2017 11:17 pm
by CZghost
Hello. Recently I found quite good code editor by Microsoft, available for Windows, Linux and Mac, titled as Visual Studio Code. It's pretty much just a text editor, with syntax highlighting feature and auto-completion feature. I'd recommend this editor alongside with other ones (like Notepad++ for Windows or Sublime Text for Linux) as it knows only two formats of line ends (omits Mac CR format on Windows), but it can seriously take over the place of your current text editor (even classic Notepad on Windows or gedit on Linux) It has also debugging options, though much limited compared to full Visual Studio IDE.

My goal is this: Create and release extension for Visual Studio Code for highlighting syntax of Quake engine shaders. I know that shader has this format:

Code: Select all

textures/custom/sprite
{
    surfaceparm nolightmap
    surfaceparm nodlight
    surfaceparm nomarks
    surfaceparm noimpact
    surfaceparm trans
    deformVertexes autosprite
    {
        map textures/custom/sprite.tga
        blendFunc GL_ONE GL_ONE
        rgbGen wave square 0 1 .25 .125
    }
}
And I would like to know how to make such syntax highlight using yo code. I mean, how to design keywords plus their parameters, how to design q3map2 directives (and allow for custom ones), allowing for custom surfaceparms, etc. Pretty much take plenty of notes from obsidian's Shader Manual and make syntax highlighter for VS Code out of that. It's great guide and making a tool for relatively new coding text editor to help to find its users also here between level designers would be great pleasure for me. But it's really new editor and I have to learn all the possibilities for it, including creation of custom syntax highlighter for custom languages (which shader is).

Re: Visual Studio Code & Shaders

Posted: Wed May 31, 2017 6:56 am
by Fjoggs
I haven't tried it myself, but here's syntax highlighting for Sublime:

https://packagecontrol.io/packages/Quake3%20Script

Re: Visual Studio Code & Shaders

Posted: Wed May 31, 2017 9:27 am
by CZghost
Unfortunately, I do not have Sublime Text, so I could only look into syntax and borrow some methods, if it will correspond to my needs:
  • I need to identify all general directives (surfaceparm, and other non-q3map directives), q3map2 directives respectively (allowing for custom q3map directive in case of modified compiler), and stage related directives (map, clampmap, etc.) - custom directives should be visually different from the standard ones
  • Identify known keywords for each directives (e.g. surfaceparm nolightmap an so on, allowing for custom surfaceparms in case of modified engine & compiler) - there are number of more directives which would require custom keywording - again need to be visually different from standard ones
  • Identify each directive their positional parameters (required or not required)
    • Texture paths, keywords like $lightmap, *whiteimage, etc.
    • Numbers in numeric parameters
    • Block comments (using multiple line comments arranged into block) would be great to recognise
  • Shader must have a name (the very beginning of the {} code wrap)
  • Block comment just before a shader name could be a shader documentation (e.g. what's the purpose of that particular shader) - like a documentation feature
  • etc. There are plenty of other things to take care of. Also, the syntax highlighter would be required to be up to date with most recent q3map2 version (the official one)...
In fact, I just started using VS Code and it's really good editor. It lets me install various extensions which may turn it into a simple, yet full working IDE (something like Vim on Linux). I also installed Vim mode to VS Code, so I can use simple keyboard strokes to execute text editing commands. Just like Vim. It's pretty handy sometimes...

Re: Visual Studio Code & Shaders

Posted: Thu Jun 01, 2017 4:58 am
by obsidian
Fjoggs wrote:I haven't tried it myself, but here's syntax highlighting for Sublime:

https://packagecontrol.io/packages/Quake3%20Script
Thanks! :up:

Re: Visual Studio Code & Shaders

Posted: Sat Jun 03, 2017 11:50 am
by Fjoggs
CZghost wrote:Unfortunately, I do not have Sublime Text, so I could only look into syntax and borrow some methods, if it will correspond to my needs:
You can just download it. It's basically free.

Re: Visual Studio Code & Shaders

Posted: Sun Jun 11, 2017 3:34 pm
by CZghost
@Fjoggs: Well, it's pretty logical. Since I will have to move to Linux soon, it's just to give it a try :) Windows just drives me crazy :(

Re: Visual Studio Code & Shaders

Posted: Sun Jun 11, 2017 3:44 pm
by CZghost
Well, works pretty good :)

Re: Visual Studio Code & Shaders

Posted: Sun Dec 16, 2018 12:19 pm
by CZghost
Okay, Installed Sublime Text 3 and it seems to work perfectly :) I'll use Sublime Text for Quake 3 script coding, because it runs quite smoother and quicker than VS Code.