Overview
This Notepad++ UDL file provides up-to-date highlighting for Notepad++ that matches the interface designer highlighting as of Appian version 17.2.
Import Instructions:
Notepad++ can be downloaded here.
If anyone's interested, I've created my own update that captures some (but not all) of the latest features as well as fixing some previous bugs. This is the language definition only (the only part of this package I ever really bothered using).
<NotepadPlus> <UserLang name="SAIL" ext="sail" udlVersion="2.1"> <Settings> <Global caseIgnored="no" allowFoldOfComments="yes" foldCompact="no" forcePureLC="0" decimalSeparator="0" /> <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="yes" Keywords6="no" Keywords7="yes" Keywords8="no" /> </Settings> <KeywordLists> <Keywords name="Comments">00 01 02 03/* 04*/</Keywords> <Keywords name="Numbers, prefix1"></Keywords> <Keywords name="Numbers, prefix2"></Keywords> <Keywords name="Numbers, extras1"></Keywords> <Keywords name="Numbers, extras2"></Keywords> <Keywords name="Numbers, suffix1"></Keywords> <Keywords name="Numbers, suffix2"></Keywords> <Keywords name="Numbers, range"></Keywords> <Keywords name="Operators1">& , : ; ? [ ] ` + < = ></Keywords> <Keywords name="Operators2"></Keywords> <Keywords name="Folders in code1, open">(</Keywords> <Keywords name="Folders in code1, middle"></Keywords> <Keywords name="Folders in code1, close">)</Keywords> <Keywords name="Folders in code2, open">{</Keywords> <Keywords name="Folders in code2, middle"></Keywords> <Keywords name="Folders in code2, close">}</Keywords> <Keywords name="Folders in comment, open">/*</Keywords> <Keywords name="Folders in comment, middle"></Keywords> <Keywords name="Folders in comment, close">*/</Keywords> <Keywords name="Keywords1">a!checkboxField
a!checkboxFieldByIndex
a!dateDisplayField
a!dateTimeDisplayField
a!dropdownFieldByIndex
a!dropdownField
a!floatingPointDisplayField
a!floatingPointField
a!integerDisplayField
a!multipleDropdownFieldByIndex
a!multipleDropdownField
a!paragraphField
a!radioButtonFieldByIndex
a!radioButtonField
a!textField
a!timeDisplayField
a!externalImageField
a!milestoneField
a!progressBarField
a!gridField
a!gridTextColumn
a!gridLinkColumn
a!dynamicLink
a!externalLinkField
a!processTaskLink
a!recordLink
a!safeLink
a!barChartField
a!columnChartField
a!lineChartField
a!pieChartField
a!buttonWidget
a!buttonWidgetSubmit
a!buttonLayout
a!buttonArrayLayout
a!dateField
a!timeDisplayField
a!fileUploadField
a!documentImage
a!imageField
a!webImage
a!gridSelection
a!linkField
a!integerField
a!documentDownloadLink
a!applyComponents
a!wsConfig
a!wsHttpCredentials
a!wsHttpHeaderField
a!wsUsernameToken
a!wsUsernameTokenScs
a!newsEntryLink
a!pickerFieldUsers
a!pickerFieldGroups
a!pickerFieldUsersAndGroups
a!pickerFieldDocuments
a!pickerFieldFolders
a!pickerFieldDocumentsAndFolders
a!richTextListItem
a!gridRowLayout
a!gridLayout
a!gridLayoutColumnConfig
a!gridLayoutHeaderCell
a!gridImageColumn
a!save
a!validationMessage
a!userRecordLink
a!forEach
a!pickerFieldCustom
a!writeToDataStoreEntity
a!startProcess
a!startProcessLink</Keywords> <Keywords name="Keywords2">a!columnsLayout
a!columnLayout
a!formLayout
a!sectionLayout
a!cardLayout
a!boxLayout
a!billboardLayout
a!sideBySideLayout
a!sideBySideItem

fn!queryrecord
type!query
type!Selection
type!Aggregation
type!LogicalExpression
type!QueryFilter
type!Search
type!Column</Keywords> <Keywords name="Keywords3">label
instructions
required
disabled
readOnly
choiceLabels
placeholderLabel
value
saveInto
steps
percentage
source
altText
links
uri
startIndex
batchSize
totalCount
data
title
timestamp
details
identifier
dashboard
dataSubset
content
contents
columns
facets
name
options
id
field
operator
filterValue
alignment
visible
pagingInfo
sort
field
ascending
series
recordType
query
alias
isGrouping
aggregationFunction
showDataLabels
task
categories
xAxisTitle
yAxisTitle
yAxisMax
yAxisMin
stacking
showLegend
showTooltips
allowDecimalAxisLabels
showAsPercentage
confirmMessage
style
primaryButtons
secondaryButtons
buttons
active
target
documentName
documentDescription
validations
validationGroup
refreshAfter
document
caption
images
size
selected
requiredMessage
identifiers
selection
maxSelections
suggestFunction
selectedLabels
skipValidation
function
array
arrayVariable
wsdlUrl
service
port
operation
wsdlCredentials
invocationCredentials
extensions
username
password
domain
systemKey
usePerUser
choiceValues
'selection|aggregation'
selection
aggregation
'logicalExpression|filter|search'
logicalExpression
filter
search
searchQuery
ssCollapsible
labelPosition
align
height
folder
link
text
items
requireSelection
headerCells
columnConfigs
rows
selectable
selectionDisabled
selectionRequired
selectionValue
width
validateAfter
validate
submit
view
link
showWhen
helpTooltip
accessibilityText
choiceLayout</Keywords> <Keywords name="Keywords4">true
false
null
LEFT
RIGHT
CENTER
NORMAL
PRIMARY
DESTRUCTIVE
COLLAPSED
ABOVE
ADJACENT</Keywords> <Keywords name="Keywords5">rule! cons!</Keywords> <Keywords name="Keywords6">append
index
insert
joinarray
ldrop
length
rdrop
remove
reverse
updatearray
where

bin2dec
bin2hex
bin2oct
dec2bin
dec2hex
dec2oct
hex2bin
hex2dec
hex2oct
oct2bin
oct2dec
oct2hex

displayvalue
externalize
internalize
toboolean
tocommunity
todate
todatetime
todecimal
todocument
toemailaddress
toemailrecipient
tofolder
togroup
tointeger
tointervalds
toknowledgecenter
topage
topeople
toportlet
tostring
totime
touser


caladddays
caladdhours
calisworkday
calisworktime
calworkdays
calworkhours
date
datetime
datevalue
day
edate
eomonth
gmt
hour
isleapyear
local
milli
minute
month
networkdays
now
second
time
timevalue
timezone
timezoneid
today
weekday
weeknum
workday
year


load
with
a!localVariables
a!refreshVariable

cast
error
infinity
isinfinite
isnegativeinfinity
isnull
ispositiveinfinity
nan
runtimetypeof
typename
typeof

and
if
not
or

all
any
apply
filter
merge
none
reduce
reject

abs
ceiling
combin
e
enumerate
even
exp
fact
floor
int
ln
log
mod
mround
multinomial
odd
pi
power
product
quotient
rand
round
rounddown
roundup
sign
sqrt
sqrtpi
sum
sumsq
todecimal
tointeger
trunc


averagetaskcompletiontimeforprocessmodel
averagetasklagtimeforprocessmodel
averagetaskworktimeforprocessmodel
community
datetext
document
folder
getdistinctusers
getgroupattribute
getprocessemail
getprocessmodelemail
group
isindaylightsavingtime
isusermemberofgroup
isusernametaken
knowledgecenter
linktocommunity
linktocommunityinternal
linktodocument
linktodocumentinternal
linktofolder
linktofolderinternal
linktogroup
linktogroupinternal
linktoknowledgecenter
linktoknowledgecenterinternal
linktoprocessdashboard
linktoprocessdashboardinternal
linktoprocessmodeldashboard
linktoprocessmodeldashboardinternal
linktouser
linktouserinternal
loggedInUser
message
numontimeprocessesforprocessmodel
numontimetasksforprocessmodel
numoverdueprocessesforprocessmodel
numoverduetasksforprocessmodel
numprocessesforprocessmodelforstatus
numtasksforprocessmodelforstatus
offsetfromgmt
page
property
queryrecord
repeat
supervisor
todatasubset
topaginginfo
torecord<br/>
toxml
urlforrecord
urlwithparameters
user
userdatetime
userdatevalue
userday
userdayofyear
userdaysinmonth
useredate
usereomonth
userisleapyear
userlocale
usermonth
usertimezone
userweekday
userweeknum
useryear
xpathdocument
xpathsnippet


contains
difference
intersection
symmetricdifference
union

avedev
average
count
frequency
gcd
geomean
harmean
lcm
lookup
max
median
min
mode
rank
stdev
stdevp
var
varp

cents
char
charat
clean
cleanwith
code
concat
currency
dollar
euro
exact
extract
extractanswers
find
fixed
initials
insertkey
insertkeyval
insertquestions
keyval
left
leftb
len
lenb
like
lower
mid
midb
padleft
padright
pound
proper
replace
replaceb
rept
resource
right
search
searchb
soundex
split
strip
stripwith
substitute
text
toHtml
tostring
trim
upper
value
yen
lastndays
acos
acosh
asin
asinh
atan
atanh
cos
cosh
degrees
radians
sin
sinh
tan
tanh</Keywords> <Keywords name="Keywords7">ri! rf! rp! local! fn! tp! pv! pp! ac! fv! save!</Keywords> <Keywords name="Keywords8">a!sectionLayout_17r1
a!formLayout_17r1
a!sectionLayoutColumns
a!formLayoutColumns
a!dashboardLayout
a!dashboardLayoutColumns
firstColumnContents
secondColumnContents</Keywords> <Keywords name="Delimiters">00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords> </KeywordLists> <Styles> <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="COMMENTS" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" /> <WordsStyle name="LINE COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" /> <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" /> <WordsStyle name="KEYWORDS2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS3" fgColor="FF8040" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS4" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS5" fgColor="400040" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS6" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS7" fgColor="800000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FF0000" fontName="" fontStyle="6" nesting="0" /> <WordsStyle name="OPERATORS" fgColor="FF0080" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS1" fgColor="8080C0" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontName="䙸B缀" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="溝恌֢蠀�碅ʨ" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="䃉恌Ԁ蠀源篡ʨ" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="彀篡ʨ" fontStyle="0" nesting="0" /> </Styles> </UserLang> </NotepadPlus>
Nice one Mike, I'll check it out and submit it as a new version!
Cool - if you have the time, I'd encourage you to take a pass through and add any newer appian rules/components that I've forgotten. I got the bigger ones / my favorites, but I assume there are a bunch I've missed as this was for my own use.