- 
Press ⌘ , to open the IDE settings and select Editor | File Types. 
- 
In the Recognized File Types list, select Files opened in associated applications. 
- 
In the File name patterns section on the right, click the Add button and specify a filename pattern (*.vtl)that should be associated with an external application.
Put keywords in different columns for different syntax highlighting.
| 1 | 2 | 3 | 4 | |
|---|---|---|---|---|
| $extensions.evictFromApiCache | $context | "#return" | "_version" | |
| $util | $context.arguments | "#set" | "attributeValues" | |
| $util.appendError | $context.identity | "condition" | ||
| $util.authType | $context.info | "consistentRead" | ||
| $util.autoId | $context.request. | "expression" | ||
| $util.autoUlid $context.result | "expressionNames" | |||
| $util.base64Decode | $context.source | "expressionValues" | ||
| $util.base64Encode | "key" | |||
| $util.defaultIfNull | "operation" | |||
| $util.defaultIfNullOrEmpty | "update" | |||
| $util.dynamodb | "version" | |||
| $util.dynamodb.fromS3ObjectJson | ||||
| $util.dynamodb.toBinary | ||||
| $util.dynamodb.toBinaryJson | ||||
| $util.dynamodb.toBinarySet | ||||
| $util.dynamodb.toBinarySetJson | ||||
| $util.dynamodb.toBoolean | ||||
| $util.dynamodb.toBooleanJson | ||||
| $util.dynamodb.toDynamoDB | ||||
| $util.dynamodb.toDynamoDBJson | ||||
| $util.dynamodb.toList | ||||
| $util.dynamodb.toListJson | ||||
| $util.dynamodb.toMap | ||||
| $util.dynamodb.toMapJson | ||||
| $util.dynamodb.toMapValues | ||||
| $util.dynamodb.toMapValuesJson | ||||
| $util.dynamodb.toNull | ||||
| $util.dynamodb.toNullJson | ||||
| $util.dynamodb.toNumber | ||||
| $util.dynamodb.toNumberJson | ||||
| $util.dynamodb.toNumberSet | ||||
| $util.dynamodb.toNumberSetJson | ||||
| $util.dynamodb.toS3Object | ||||
| $util.dynamodb.toS3ObjectJson | ||||
| $util.dynamodb.toString | ||||
| $util.dynamodb.toStringSet | ||||
| $util.dynamodb.toStringSetJson | ||||
| $util.error | ||||
| $util.escapeJavaScript | ||||
| $util.http | ||||
| $util.http.copyHeaders | ||||
| $util.isBoolean | ||||
| $util.isList | ||||
| $util.isMap | ||||
| $util.isNull | ||||
| $util.isNullOrBlank | ||||
| $util.isNullOrEmpty | ||||
| $util.isNumber | ||||
| $util.isString | ||||
| $util.list.copyAndRemoveAll | ||||
| $util.list.copyAndRetainAll | ||||
| $util.list.sortList | ||||
| $util.map | ||||
| $util.map.copyAndRemoveAllKeys | ||||
| $util.map.copyAndRetainAllKeys | ||||
| $util.matches | ||||
| $util.math.maxVal | ||||
| $util.math.minVal | ||||
| $util.math.randomDouble | ||||
| $util.math.randomWithinRange | ||||
| $util.math.roundNum | ||||
| $util.parseJson | ||||
| $util.rds.toJsonObject | ||||
| $util.rds.toJsonString | ||||
| $util.str.normalize | ||||
| $util.str.toLower | ||||
| $util.str.toReplace | ||||
| $util.str.toUpper | ||||
| $util.time.epochMilliSecondsToFormatted | ||||
| $util.time.epochMilliSecondsToISO8601 | ||||
| $util.time.epochMilliSecondsToSeconds | ||||
| $util.time.nowEpochMilliSeconds | ||||
| $util.time.nowEpochSeconds | ||||
| $util.time.nowFormatted | ||||
| $util.time.nowISO8601 | ||||
| $util.time.parseFormattedToEpochMilliSeconds | ||||
| $util.time.parseISO8601ToEpochMilliSeconds | ||||
| $util.toJson | ||||
| $util.toStringJson | ||||
| $util.transform | ||||
| $util.transform.toDynamoDBFilterExpression | ||||
| $util.transform.toElasticsearchQueryDSL | ||||
| $util.typeOf | ||||
| $util.unauthorized | ||||
| $util.urlDecode | ||||
| $util.urlEncode | ||||
| $util.validate | ||||
| $util.xml.toJsonString | ||||
| $util.xml.toMap | 

