" _ ____ " (_)____ _ _ __ ____ _ / __/____ _____ " / // __ `/| | / // __ `/ / /_ / __ \ / ___/ " / // /_/ / | |/ // /_/ / / __// /_/ // / " __/ / \__,_/ |___/ \__,_/ /_/ \____//_/ " /___/ __ " ____ ____/ /__ __ _____ _____ ___ __ __ " / __ \ / __ // / / // ___// ___// _ \ / / / / " / /_/ // /_/ // /_/ /(__ )(__ )/ __// /_/ / " \____/ \__,_/ \__, //____//____/ \___/ \__, / " /____/ /____/ " " Note: This script aims at providing some new syntax element for Java. It " therefore declares syntax elements for: " - Type and class names, " - Enum values, " - Import statements ('import' and 'import static'). " " Maintainer: Ludovic Koenig " Version: 0.4.0 " Since: 0.4.0 " License: MIT " " Java Syntax {{{ syntax keyword javaOdysseyThis this syntax keyword javaOdysseyLombok val var syntax match javaOdysseyArrow "->" containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyClass "\%(\\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyInterface "\%(\\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyEnum "\%(\\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyArray "\[\]" contained syntax match javaOdysseyGeneric "[><]" contained syntax match javaOdysseySeparator "," contained syntax match javaOdysseyType "\%(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%(\[\]\)\=\)\%(\s*\<\l\w*\>\)\@=" containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator syntax match javaOdysseyConstructor "\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%((\|\[\)"me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyMethod "\<\l\w*\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyDotOperator "\<\u\w*\>\."me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyEnumValue "\<[A-Z][_A-Z0-9]\+\>" containedin=javaParenT,javaParenT1,javaParenT2,javaLabelRegion syntax match javaOdysseyEnumConstructor "\<[A-Z][_A-Z0-9]\+\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyCasting "(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)\+>\)\=\%(\[\]\)\=)"hs=s+1,he=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator syntax match javaOdysseyGetClass "\%(\\s\+\%(\w\+\.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@=" syntax match javaOdysseyGetStaticMethod "\%(\\s\+\\s\+\%(\w\+\.\)\+\)\@<=\%(\l\w*\)\%(\s*;\)\@=" syntax match javaOdysseyGetStaticClass "\%(\\s\+\\s\+\%(\w\+\.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@=" syntax match javaOdysseyExtends "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyImplements "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyMethodRef "::\<\l\w*\>"ms=s+2 containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyClassMethodRef "\<\u\w*\>::"me=e-2 containedin=javaParenT,javaParenT1,javaParenT2 syntax region javaOdysseyComment start=+/\*+ end=+\*/+ transparent fold keepend syntax region javaOdysseyImport start=/\%(^import\)\@<=\s.\+;/ end=+^\s*$+ transparent fold keepend syntax region javaOdysseyImportStatic start=/\%(^import static\)\@<=\s.\+;/ end=+^\s*$+ transparent fold keepend syntax cluster javaTop add=javaOdysseyLombok " }}} " vim: foldmethod=marker