HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

JASS2, vJass and Zinc edit modes for jEdit (v9)

10-22-2009, 08:23 PM#1
Vexorian
I've been starting to love the text editor called jEdit. It is very flexible, it is cross platform, it has INDENTATION-BASED FOLDING. And well... So much that I made edit modes for zinc and vjass for jEdit so that it can highlight them

jEdit
jEdit is free as in beer and freedom, so you may download it for free, it also supports windows, OS/X and Linux just fine. But it requires the Java runtime environment.

So, you'll need to download and install it in your OS:
http://www.jedit.org/

The files
The zip file contains three xml files which you should copy to a sub-folder called modes which is inside your jEdit settings directory.

After copying the files, you need to add a catalog entry. To this, open the file called 'catalog' that is inside your modes folder, it should look like this:
Code:
<?xml version="1.0"?>
<!DOCTYPE MODES SYSTEM "catalog.dtd">

<MODES>

<!-- Add lines like the following, one for each edit mode you add: -->
<!-- <MODE NAME="foo" FILE="foo.xml" FILE_NAME_GLOB="*.foo" /> -->

</MODES>
Simply add these lines before </MODES> :

Code:
<MODE NAME="wc3-jass" FILE="jass.xml" FILE_NAME_GLOB="{*.ai,common.j,blizzard.j}" />
<MODE NAME="wc3-vjass" FILE="vjass.xml" FILE_NAME_GLOB="{!{common,blizzard}}.j" />
<MODE NAME="wc3-zinc" FILE="zinc.xml" FILE_NAME_GLOB="*.zn" />

Then save it.

Now:
* If you open blizzard.j, common.j or an .ai file, you get JASS2 syntax highlight (without vJass extensions)
* If you open other file ending with .j, you get vJass highlighting.
* If you open a file with extension .zn you get Zinc highlighting.
* If you want to change to one of the modes when when editing a file, you may go to utilities\buffer options and then find the modes called "wc3-jass", "wc3-vjass" and "wc3-zinc".


If you want to change the color/format of a syntax element, select it and then go to Utilities\Quick settings\Edit syntax style of token under carret.

This thing is very powerful, first time since gvim I am able to actually have correct code folding, nested /* */ comments, and line breaks inside strings. Plus it is not as hard as gvim, so...

Edit: Also, for example, The contents //! zinc tags inside a vJass file will switch to zinc highlighting mode. And //! novjass will switch to Jass2 mode. That's cool?

I managed to actually highlight stuff inside preprocessor lines, but they won't highlight elsewhere...

Assorted jEdit tips
* You should probably go to global options the first time to tweak jEdit, its default config are kinda strange... For example, to disable the periods at the end of the lines go to the "Global options" button, then "Text Area" then uncheck "end of line markers"

* You can make it use tabs: Go to plugins and install two plugins: "BufferTabs" and "GNURegexp", let it download and install those plugins then go to plugin options and go to the BufferTabs part to enable them.

* To have cute indentation markers like in the screenshot, install the Whitespace plugin.

* This can do autocomplete: Whenever you can't think of a keyword/native/bj function name, press ctrol+b after typing something.
10-23-2009, 03:36 AM#2
Vexorian
Bump, now highlights Jass2, vJass and zinc.
10-23-2009, 07:34 AM#3
Anachron
vJass or vJass2?
How is this better as JassHelper?
What do we have to keep in mind / which operating systems?
Does it include write suggestions?
Does it provide us with the function to generate prepared code snippets?
10-23-2009, 12:40 PM#4
Deaod
Half of your questions could be answered by something as simple as reading the post.
10-23-2009, 12:47 PM#5
Vexorian
Quote:
vJass or vJass2
vJass and JASS2 (notice the lack of a v)
Quote:
How is this better as JassHelper?
How is an elephant better than the color green?
Quote:
Does it include write suggestions?
There's probably a way to add it, but since I never use those things I probably won't.

Quote:
Does it provide us with the function to generate prepared code snippets?
Yes.
10-23-2009, 12:58 PM#6
Anachron
Quote:
vJass and JASS2 (notice the lack of a v)
Whats the diffrence?

Quote:
How is an elephant better than the color green?
Sorry, I meant JassCraft

Quote:
There's probably a way to add it, but since I never use those things I probably won't.
hm ok.

Quote:
Yes.
Fine!
10-23-2009, 01:10 PM#7
chobibo
Thanks Vex, I've also been using jEdit, now I don't need to open WE for quick edits yeah!
10-23-2009, 01:14 PM#8
Vexorian
Quote:
Whats the diffrence?
JASS2 is that language blizz created that has no libraries, structs, textmacros and all that stuff. So basically, the idea is that if you get to edit blizzard.j, it won't highlight vJass extensions.

jasscraft? Well, these files won't make it do autocompletion or able to call pJASS directly, but jEdit will be able to do correct vJass syntax highlighting and also Zinc.
10-23-2009, 02:22 PM#9
Rising_Dusk
This is totally going to be a spam post, but it's really worth it.
Quote:
Originally Posted by Anachron
Quote:
Originally Posted by Vexorian
vJass and JASS2 (notice the lack of a v)
Whats the diffrence?
Lol!

I tested this:
It is kind of cool, but a few things I don't like. Apparently scope and their initializer declarations don't highlight at all, even in the vjass edit mode. (I made sure I was using that) I attached a screenshot of this. The file I loaded was a non-common/blizzard .j file. (One for my own map)
Attached Images
File type: jpgscope.JPG (57.6 KB)
10-23-2009, 02:25 PM#10
Anachron
To get the vJass Syntax Heighlighting,

such as
Click image for larger version

Name:	vJassHeighlight.JPG
Views:	350
Size:	67.4 KB
ID:	46198

you should have the heighlight settings as following
(Open it with Utilities - Global Options - jEdit - Syntax Heighlighting)
Click image for larger version

Name:	vJassSettings.JPG
Views:	245
Size:	81.0 KB
ID:	46199

edit:
Quote:
Originally Posted by Rising_Dusk
This is totally going to be a spam post, but it's really worth it.

Lol!
I was asking why its called JASS2 and not vJass. And?
I bet 99% of the wc3 mappers don't know this.

And if you excuse me, I am willing to learn, so what about it?
Attached Images
File type: jpgvJassHeighlight.JPG (67.4 KB)
File type: jpgvJassSettings.JPG (81.0 KB)
10-23-2009, 02:36 PM#11
Rising_Dusk
Quote:
Originally Posted by Anachron
I was asking why its called JASS2 and not vJass. And?
Because Blizzard called it that in the common.j file, obviously. No one knows why it is called that, just that it is.
Quote:
Originally Posted by Anachron
And if you excuse me, I am willing to learn, so what about it?
So it is still hilarious.
10-23-2009, 02:44 PM#12
Vexorian
Blizzard named it JASS2. Rumors say it stands for "Just Another Scripting System" but that's just a rumor, no one knows for sure.
The 2 is rumored to come from the fact that there was another thing called JASS that was different.

I named the other one vJass. Why? Well, it is a long story, officialy v stands for very, I think.

Checked the plugins section, there is a text autocomplete plugin that is smart and autocompletes based on things already on the file, so in the long run it makes things faster. There are also many things in there, looking for one that would add markers to lines that were modified...

There is a plugin called whitespace that will add cute lines to your identation, makes things easier to find...

edit: oh, and I have updated it, added highlight for then, initializer, scope and endscope ...
10-23-2009, 02:49 PM#13
Anachron
Quote:
Blizzard named it JASS2. Rumors say it stands for "Just Another Scripting System" but that's just a rumor, no one knows for sure.
The 2 is rumored to come from the fact that there was another thing called JASS that was different.
Oh noes, blizzard is trying to create JASS2.

Quote:
I named the other one vJass. Why? Well, it is a long story, officialy v stands for very, I think.
Vexorian JASS I guess.

Quote:
Checked the plugins section, there is a text autocomplete plugin that is smart and autocompletes based on things already on the file, so in the long run it makes things faster. There are also many things in there, looking for one that would add markers to lines that were modified...
Plugins could be better. Most are for Java and C++.

Quote:
There is a plugin called whitespace that will add cute lines to your identation, makes things easier to find...
It sometimes bugs, I've tested it.
Quote:
edit: oh, and I have updated it, added highlight for then, initializer, scope and endscope ...
Trying to find more unhighlighted stuff. Prepare for it.

Edit: Syntax heighlighting for constants please, such as EFFECT_TYPE_LIGHTNING.

Edit2:
agent is not highlighted.
10-23-2009, 02:50 PM#14
Rising_Dusk
All keywords I use appear to work now. I am going to hopefully assume that you tested all of the obscure vJass ones that I don't use and that you'll update this if anything gets added/removed from jasshelper in the future. Furthermore, a last question is how do you get rid of those periods at the end of every line? I really don't like them and would probably use this were it not for those.

Oh and yes, because I tested this and it works as listed and is very, very useful, I am going to approve it. Also, because it's made by Vex, maybe it'll actually be kept up to date with jasshelper. (Which would be more useful than anything else this does)
Quote:
Originally Posted by Anachron
Oh noes, blizzard is trying to create JASS2.
They already did... It's the one you use in WC3. JASS1 is supposedly the internal coding language used for SC.
10-23-2009, 02:59 PM#15
Vexorian
Quote:
Furthermore, a last question is how do you get rid of those periods at the end of every line?


global options\text area\end of line markers

I hate them too, for some reason there are programmers who love them.