Wc3C.net JASS2, vJass and Zinc edit modes for jEdit (v9)
 Register Rules Get Hosted! Chat Pastebin FAQ and Rules Members List Calendar

10-22-2009, 08:23 PM   #1
Vexorian
Free Software Terrorist

Technical Director

Join Date: Apr 2003
Posts: 14,898

Submissions (37)

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

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.

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.
Attached Images
 newscreen.png (90.5 KB, 2439 views)
Attached Files
 wc3.jEdit.v9.zip (24.9 KB, 1030 views)
__________________
 Wc3 map optimizer 5.0 Someone should fix .wav sound in this thing. JassHelper 0.A.2.A Turns your simple code into something that is complicated enough to work.
 Wc3 map optimizer 5.0 JassHelper 0.A.2.A Xye 0.12.1 | Editor/Levels xe0.9 CS16.0 My spells jEdit modes for vJass&Zinc (v9) WarCiTy 0.2.0
Faster != more useful

 10-23-2009, 03:36 AM #2 Vexorian Free Software Terrorist   Technical Director   Join Date: Apr 2003 Posts: 14,898 Submissions (37) Bump, now highlights Jass2, vJass and zinc.
 10-23-2009, 07:34 AM #3 Anachron User     Join Date: Mar 2009 Posts: 1,079 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? __________________ CustomInventory [Discussion - Download] - Got Directors Cut! CustomMissle [Discussion - [Download (not yet)] - In development! Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]
10-23-2009, 12:40 PM   #4
Deaod
User

Join Date: Jan 2007
Posts: 542

Submissions (11)

__________________
 Useful Links: Resources: Maps & Projects: #wc3c, #wc3dev Private Messages Search │ │ │ │ Custom Bar System DelFX Orb Stacking TextSplat ImageBars ImageUtils │ │ │ │ Gravity Hook Gravity Hook 2

10-23-2009, 12:47 PM   #5
Vexorian
Free Software Terrorist

Technical Director

Join Date: Apr 2003
Posts: 14,898

Submissions (37)

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.
__________________
 Wc3 map optimizer 5.0 Someone should fix .wav sound in this thing. JassHelper 0.A.2.A Turns your simple code into something that is complicated enough to work.
 Wc3 map optimizer 5.0 JassHelper 0.A.2.A Xye 0.12.1 | Editor/Levels xe0.9 CS16.0 My spells jEdit modes for vJass&Zinc (v9) WarCiTy 0.2.0
Faster != more useful

10-23-2009, 12:58 PM   #6
Anachron
User

Join Date: Mar 2009
Posts: 1,079

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!
__________________
Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]

 10-23-2009, 01:10 PM #7 chobibo 100% Genuine Retard!     Join Date: Jan 2007 Posts: 797 Thanks Vex, I've also been using jEdit, now I don't need to open WE for quick edits yeah! __________________ Where's mah sig?
10-23-2009, 01:14 PM   #8
Vexorian
Free Software Terrorist

Technical Director

Join Date: Apr 2003
Posts: 14,898

Submissions (37)

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.
__________________
 Wc3 map optimizer 5.0 Someone should fix .wav sound in this thing. JassHelper 0.A.2.A Turns your simple code into something that is complicated enough to work.
 Wc3 map optimizer 5.0 JassHelper 0.A.2.A Xye 0.12.1 | Editor/Levels xe0.9 CS16.0 My spells jEdit modes for vJass&Zinc (v9) WarCiTy 0.2.0
Faster != more useful

10-23-2009, 02:22 PM   #9
Rising_Dusk
Obscurity, the Art

Projects Director

Join Date: Feb 2006
Posts: 9,729

Submissions (27)

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
 scope.JPG (57.6 KB, 270 views)
__________________

Last edited by Rising_Dusk : 10-23-2009 at 02:34 PM.

10-23-2009, 02:25 PM   #10
Anachron
User

Join Date: Mar 2009
Posts: 1,079

To get the vJass Syntax Heighlighting,

such as

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

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?
__________________
Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]

Last edited by Anachron : 10-23-2009 at 02:30 PM.

10-23-2009, 02:36 PM   #11
Rising_Dusk
Obscurity, the Art

Projects Director

Join Date: Feb 2006
Posts: 9,729

Submissions (27)

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
Free Software Terrorist

Technical Director

Join Date: Apr 2003
Posts: 14,898

Submissions (37)

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 ...
__________________
 Wc3 map optimizer 5.0 Someone should fix .wav sound in this thing. JassHelper 0.A.2.A Turns your simple code into something that is complicated enough to work.
 Wc3 map optimizer 5.0 JassHelper 0.A.2.A Xye 0.12.1 | Editor/Levels xe0.9 CS16.0 My spells jEdit modes for vJass&Zinc (v9) WarCiTy 0.2.0
Faster != more useful

10-23-2009, 02:49 PM   #13
Anachron
User

Join Date: Mar 2009
Posts: 1,079

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.
__________________
Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]

Last edited by Anachron : 10-23-2009 at 02:54 PM.

10-23-2009, 02:50 PM   #14
Rising_Dusk
Obscurity, the Art

Projects Director

Join Date: Feb 2006
Posts: 9,729

Submissions (27)

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.
__________________

Last edited by Rising_Dusk : 10-23-2009 at 02:51 PM.

10-23-2009, 02:59 PM   #15
Vexorian
Free Software Terrorist

Technical Director

Join Date: Apr 2003
Posts: 14,898

Submissions (37)

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.
__________________
 Wc3 map optimizer 5.0 Someone should fix .wav sound in this thing. JassHelper 0.A.2.A Turns your simple code into something that is complicated enough to work.
 Wc3 map optimizer 5.0 JassHelper 0.A.2.A Xye 0.12.1 | Editor/Levels xe0.9 CS16.0 My spells jEdit modes for vJass&Zinc (v9) WarCiTy 0.2.0
Faster != more useful