User:Cipscis/Syntax Highlighting Test

From the CreationKit Wiki
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