Writing Scripts with Syntax Highlighting
#1
This is a UDL (User Defined Language) for the free code editor Notepad++

After installing it, your scripts will no longer look like this...

[Image: without.png]

They will have syntax highlighting, making it much easier to write scripts!

[Image: with.png]

To install this UDL, save the following text to your computer with the .xml file extension. E.G. cubescript.xml

<NotepadPlus>
    <UserLang name="CubeScript" ext="cfg">
        <Settings>
            <Global caseIgnored="no" />
            <TreatAsSymbol comment="no" commentLine="yes" />
            <Prefix words1="no" words2="no" words3="no" words4="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Delimiters">&quot;00&quot;00</Keywords>
            <Keywords name="Folder+">[</Keywords>
            <Keywords name="Folder-">]</Keywords>
            <Keywords name="Operators">$ % ( )</Keywords>
            <Keywords name="Comment">1 2 0//</Keywords>
            <Keywords name="Words1">MDArray_Add_To_Subarray MDArray_Delete_Subarray MDArray_Get MDArray_Get_All_Subarray_Names MDArray_Get_Subarray_Count MDArray_Modify_Subarray MDArray_New_Subarray MDArray_Search aadynshadow aboveheadiconfadetime aboveheadiconsize add2alias add2bind add2list addListOnQuit addOnQuit addbot addfavcategory addnbot addpath1way1 addpath1way2 addpath2way1 addpath2way2 addpunct addselection addserver addwp addzip advancemaprevision akimboautoswitch akimboendaction al_referencedistance al_rollofffactor alias aliasinit alive allowblinkingtext allowhudechos altconsize ambient ambientsoundvol animationinterpolationtime applydialog applymapsoundchanges arch archvertex at ati_mda_bug attack audio audiodebug autogetmap autogetnewmaprevisions autoreload autoscopesens autoscreenshot autoteam autowp backward ban benchme bilinear bind blood bloodttl botskill botskillall botsshoot break browsefiledesc bulletairsound bulletairsounddestrad bulletairsoundrad bulletairsoundsourcerad bulletbouncesound bulletbouncesoundrad bullethole bulletholettl c callvote ceil changefollowplayer changeteam checkalias checkinit checkmapdependencies chmenumdl cleanshot cleardemos clearents clearignored clearminimap clearmuted clearservers clockdisplay clockerror clockfix closemenu closestenttype cncolumncolor colorbits complete concat concatword confade connect connectadmin connected consize conskip const continue convertcase coop copy copyent corner countwalls crosshairfx crosshairsize crosshairteamsign crouch ctf curautoteam curmap curmaprevision curmastermode curmode curmodeattr curplayers currentprimary currole curserver curteam curweapon damageindicatoralpha damageindicatordist damageindicatorsize damageindicatortime damagescreen damagescreenalpha damagescreenfactor damagescreenfade datestring dbgmbatch dbgpos dbgstenc dbgtiles dbgts dbgvlight debugargs delalias delent deleteservermap delmenu delpath1way1 delpath1way2 delpath2way1 delpath2way2 delwp demo demonameformat demotimeformat demotimelocal depthbits depthoffset disablehud disconnect div div= div=f divf dm docargument docexample docfind docident docinvalid dockey docref docremark docsection docskip docundone docvisible docwritebaseref drawbeamtobots drawzone dropflag dyngamma dynlight dynshadow dynshadowdecay dynshadowquad dynshadowsize echo editaxis editbind editheight editing edittag edittex edittoggle enablehud entproperty entset entstats equalize exec execute findcn findlist findpn floor flrceil flyspeed fog fogcolour font fontchar fontskip footstepalign footsteps forceme forceteam format forward fov fovcompat fpsrange fragmessage fsaa fullbright fullbrightlevel fullconsize fullscreen gainscale gamemode gamemodedesc gamespeed gametimecurrent gametimemaximum gametimestart gamma getEngineState getalias getclientmode getdemo getdemonameformat getdemotimeformat getentattr getenttype getmap getmapmsg getmode getscrext gettext gib gibmessage gibnum gibsgore gibspeed gibttl giveadmin glext heartbeat heightfield hidebigmenuimages hidecompass hideconsole hidectfhud hidecustomskins hidedamageindicator hidefavicons hidehudequipment hidehudmsgs hideradar hidespecthud hideteam hidevote hirestextures history hitsound htf hudecho hudextras hudgun hwtexsize idlebots if ignore inWater inputcommand interms invmouse isIdent isclient isconst isolatecontext jpegquality jump keymap kick kickallbots kickbot ktf l0 lanconnect lang lastgametimeupdate left lighterror lightscale listaverage listcomplete listdemos listfavcats listignored listlen listmapdependencies listmapdependencies_all listmuted lms loadcrosshair loadnotexture loadsky localfootsteps loop looplist lss magcontent magreserve map mapbackupsonsave mapdimsfactor mapenlarge maploaditemlength mapmodel mapmodelreset mapmsg mapname mapshot mapshrink mapsize mapsound mapsoundrefresh mapsoundreset mapstartalways mapstartonce mastermode masterupdatefrequency maxcon maxfps maxhistory maxrecoil maxroll maxrollremote maxservpings maxsoundsatonce maxtexsize maxtmus md2anim md2emit md2tag md3anim md3emit md3link md3load md3skin mdlalphatest mdlcachelimit mdlcullface mdldlist mdldyncache mdlscale mdlshadowdist mdlstatcache mdltrans mdltranslucent mdlvertexlight me megabind menucanblink menudirlist menufont menuinit menuinitselection menuitem menuitemcheckbox menuitemimage menuitemkeyinput menuitemmapload menuitemslider menuitemtextinput menuitemvar menumdl menuselection menuselectionbgcolor mergestrips mfilter millis minimapres minlod minutesremaining mod modconnect modconnectadmin mode modeacronyms modf modlanconnect modmdlvwepN modmdlweapN mouseaccel movemap mtexplosion mtwater music musicpreload musicvol muteplayer mutesound name networkdebug newent newent akimbo newent ammobox newent armour newent clip newent ctf-flag newent grenades newent health newent helmet newent ladder newent light newent mapmodel newent pistol newent playerstart newent plclip newent sound newmap newmenu nextclosestent nextplayerstart nextprimary nickcomplete nosway numargs numconlines old_editbinds oldfashionedgunstats oldselstyle onAttack onCallVote onChangeVote onConnect onDisconnect onFlag onHit onKill onLastMin onNameChange onNewMap onPickup onSpawn onVoteEnd onWeaponSwitch onrelease orderscorecolumns osok particlesize paste pasteent paused perlin persistidents pf physinterp pm pngcompress polygonoffsetfactor polygonoffsetunits pop popdeadplayers powf prevweapon pstat_score pstat_weap push quicknadethrow quit radarentsize radarheight recalc recoilbackfade recoilbase recoilincrease recoiltest reflectclip reflectscissor reflectsize registermusic registersound reload removebans removezip replace resetbinds resetcfg resetgl resetsecuremaps resetselections resetsleeps result return rewind right righthanded rnd round savemap saveshadows say saycommand sc_clientnum sc_deaths sc_flags sc_frags sc_lag sc_name sc_ratio sc_score scalelights scopefov scopesensscale scorch scorchttl scorefont scr_h scr_w screenres screenshot screenshotscale screenshottype scriptcontext sealcontexts searchlan searchnickname securemap select selectionflip selectionrotate selsx selsxs selsy selsys sendmap sensitivity sensitivityscale serverbrowserhidefavtag serverbrowserhideip serverdesc serverextension serversort serversortdir serversortpreferofficial servpingrate setadmin setburst setedithide seteditshow setfollowplayer setfont setgamma setjumpwp setmr setscope settex setwptriggernr setwpyaw shadowcasters shadowclip shadowtile shadowyaw shiftweapon shotline shotlinettl showallservers showedithide showgrid showmap showmapbackdrop showmapbackdroptransparency showmenu showminremain showmip showmodedescriptions showmodelclipping shownamesinbrowser showonlyfavourites showonlygoodservers showscores showscoresondeath showspeed showstats showtargetname showweights shuffleteams skin skin_cla skin_rvsf skyclip sleep slope smoothdist smoothmove solid sound soundchannels soundmuted soundscheddistancescore soundschedoldbonus soundschedpriorityscore soundschedreserve soundtest soundvol specbind spectate spectatemode spectfov specthudgun start_intermission stencilbits stencilshadow stopdemo storesets strcmp strlen strpos strreplace strstr substr suicide survival swaymovediv swayspeeddiv swayupmovediv swayupspeeddiv systime tdm team teamdisplaymode telebot testchar testlist testvel testvisible texreduce texture texturereset throttle_accel throttle_decel throttle_interval timestamp timestring tktf togglebotview toggleconsole togglegrap toggleocull togglespect tolower tosok toupper trilinear ts tsswap undo undomegs unmuteallsounds unsetjumpwp updatefrommaster vdelta version vip voicecom voicecomsounds vote votepending vsync watchingdemo watercolour waterlevel waterreflect waterrefract watersubdiv waveheight weapon while whois wpclear wpflood wpinfo wpload wpsave wpvisible writecfg xhairwpsel</Keywords>
            <Keywords name="Words2">! != !=f &amp;&amp; * *= *f + += +f - -= -f &lt; &lt;= &lt;=f &lt;f = =f &gt; &gt;= &gt;=f &gt;f ||</Keywords>
            <Keywords name="Words3"></Keywords>
            <Keywords name="Words4"></Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="FF4B00" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="FF4B00" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="KEYWORD1" styleID="5" fgColor="0000C8" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="12" />
            <WordsStyle name="KEYWORD2" styleID="6" fgColor="FF4B00" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="COMMENT" styleID="1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="C0C0C0" bgColor="FFFFFF" fontName="" fontStyle="2" />
            <WordsStyle name="NUMBER" styleID="4" fgColor="FF00FF" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="OPERATOR" styleID="10" fgColor="FF4B00" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER1" styleID="14" fgColor="008CC0" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER2" styleID="15" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

Next, open up Notepad++ and click on the "View" menu up top (or push [ALT] + [V] on your keyboard to open it)

Now, select the "User-Defined Dialogue..." menu item.

Click on the "Import..." button and select the file you just saved (remember, the file needs to have the .xml file extension)

Click the "Open" button or push [Enter] and you've got it installed! You do, however need to restart Notepad++ for it to work. After you do this, any files you open with the .cfg extension will have syntax highlighting for the CubeScript language!

If you already had some files open during the installation process, you will either have to close and re-open those files or click on the "Language" menu ([ALT] + [L]) and select "CubeScript" from the bottom of the menu. You can also use this menu to disable syntax highlighting for the current file by choosing "User-Defined" instead of "CubeScript."
Thanks given by:
#2
Hey that's very neat, I'll check this bad boy out.

Thanks for the scoop.
Thanks given by:
#3
I was gonna do this same thing xD
Thanks given by:
#4
Not very sure, but I think this has already been done. XD
Thanks given by:
#5
@Orynge: It has, V-Man made one quite a long time ago now. Theres a good chance this one is more up to date as far as the list of cubescript commands the highlighter will recognize goes. Not to mention that the download link in V-Man's thread is dead since a long time ago.
Thanks given by: