User:Cipscis/Syntax Highlighting Test

From the CreationKit Wiki
< User:Cipscis
Revision as of 00:43, 15 December 2012 by imported>Cipscis (Reverted edits by Google4 (talk) to last revision by Cipscis)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page contains an example script that contains many different elements of Papyrus for the purpose of demonstrating the wiki's syntax highlighting. I plan to use it to configure a Notepad++ user-defined language to use as close to the same styles as possible.

Unfortunately, Notepad++ doesn't seem to be able to differentiate between operators and brackets in a user-defined language, yet the wiki does, so unless I'm missing something a Notepad++ user-defined language's syntax highlighting style can't be made to exactly match the wiki's style.

ScriptName SyntaxHighlightingTest extends Form
{This script demonstrates syntax highlighting
of various structures}

float Property Number = 0.0 auto
{This is some property documentation}

bool Property Boolean = false
	Function Set(bool value)
		Boolean = value
	EndFunction
	bool Function Get()
		return Boolean
	EndFunction
EndProperty

string HelloWorld = "Hello, world!" ; This is a line comment

ObjectReference PlayerRef

int[] Array = new int[20]

Event OnHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile)

	PlayerRef = (Game.GetPlayer() as ObjectReference)
	if (false != true)
		Boolean = !((Boolean || false) && true)
		Number = Number - int.Length * 1.0
		Kill(Self)
	elseif (Game.GetPlayer as Form)
		; Do stuff
;/	else
		Kill(Self) /;
	endif

EndEvent

It seems the following categories are used:

Keywords[edit | edit source]

kw1[edit | edit source]

Keywords related to script structure e.g. ScriptName extends EndFunction as endif

kw2[edit | edit source]

The names of literals e.g. int bool

kw3[edit | edit source]

The names of scripts e.g. ObjectReference Game Math ActiveMagicEffect

kw4[edit | edit source]

The names of property member functions: Get Set

kw5[edit | edit source]

The names of functions, including events e.g. GetPlayer OnHit

Comments[edit | edit source]

coMULTI[edit | edit source]

Documentation comments surrounded by curly braces: {This is a comment}


Multi-line comments delimited by ";/" and "/;": ;/ This is a comment ;/

co1[edit | edit source]

Line comments preceded by a semi-colon (semi-colons inside string literals don't count): ; This is a comment

Strings[edit | edit source]

st0[edit | edit source]

Strings surrounded by double quotes: "This is a string"

Symbols[edit | edit source]

sy0[edit | edit source]

Operators such as the following: + - = += && || . ,

Brackets[edit | edit source]

br0[edit | edit source]

Brackets such as the following: ( ) [ ]

Numbers[edit | edit source]

nu0[edit | edit source]

Numbers, including decimal points: 1 9 3.0 2.5