aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/abap.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-07-11 04:05:51 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-07-29 02:12:31 +0000
commita98a6996c291b3e300d27b791eded9eed333d677 (patch)
tree51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/syntax/abap.vim
parent66bc13163398786c88e20b7cdd61c66978b4d3fb (diff)
downloadrneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.gz
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.bz2
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.zip
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
Diffstat (limited to 'runtime/syntax/abap.vim')
-rw-r--r--runtime/syntax/abap.vim214
1 files changed, 214 insertions, 0 deletions
diff --git a/runtime/syntax/abap.vim b/runtime/syntax/abap.vim
new file mode 100644
index 0000000000..1d1f6afd0d
--- /dev/null
+++ b/runtime/syntax/abap.vim
@@ -0,0 +1,214 @@
+" Vim ABAP syntax file
+" Language: SAP - ABAP/R4
+" Revision: 2.1
+" Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
+" Last Change: 2013 Jun 13
+" Comment: Thanks to EPI-USE Labs for all your assistance. :)
+
+" For version < 6.0: Clear all syntax items
+" For version >= 6.0: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Always ignore case
+syn case ignore
+
+" Symbol Operators (space delimited)
+syn match abapSymbolOperator "\W+\W"
+syn match abapSymbolOperator "\W-\W"
+syn match abapSymbolOperator "\W/\W"
+syn match abapSymbolOperator "\W%\W"
+syn match abapSymbolOperator "\W=\W"
+syn match abapSymbolOperator "\W<\W"
+syn match abapSymbolOperator "\W>\W"
+syn match abapSymbolOperator "\W\*\W"
+syn match abapSymbolOperator "\W[<>]=\W"
+syn match abapSymbolOperator "\W<>\W"
+syn match abapSymbolOperator "\W\*\*\W"
+syn match abapSymbolOperator "\[\]"
+syn match abapSymbolOperator "->\*\?"
+syn match abapSymbolOperator "=>"
+syn match abapSymbolOperator "[()~:,\.&$]"
+
+" Literals
+syn region abapCharString matchgroup=abapCharString start="'" end="'" contains=abapCharStringEscape
+syn match abapCharStringEscape contained "''"
+
+syn region abapString matchgroup=abapString start="`" end="`" contains=abapStringEscape
+syn match abapStringEscape contained "``"
+
+syn match abapNumber "\-\=\<\d\+\>"
+syn region abapHex matchgroup=abapHex start="X'" end="'"
+
+if version >= 600
+ setlocal iskeyword=48-57,_,A-Z,a-z,/
+else
+ set iskeyword=48-57,_,A-Z,a-z,/
+endif
+
+syn match abapNamespace "\</\w\+/"
+
+" multi-word statements
+syn match abapComplexStatement "\<\(WITH\W\+\(HEADER\W\+LINE\|FRAME\|KEY\)\|WITH\)\>"
+syn match abapComplexStatement "\<NO\W\+STANDARD\W\+PAGE\W\+HEADING\>"
+syn match abapComplexStatement "\<\(EXIT\W\+FROM\W\+STEP\W\+LOOP\|EXIT\)\>"
+syn match abapComplexStatement "\<\(BEGIN\W\+OF\W\+\(BLOCK\|LINE\)\|BEGIN\W\+OF\)\>"
+syn match abapComplexStatement "\<\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)\>"
+syn match abapComplexStatement "\<NO\W\+INTERVALS\>"
+syn match abapComplexStatement "\<RESPECTING\W\+BLANKS\>"
+syn match abapComplexStatement "\<SEPARATED\W\+BY\>"
+syn match abapComplexStatement "\<USING\(\W\+EDIT\W\+MASK\)\?\>"
+syn match abapComplexStatement "\<WHERE\(\W\+LINE\)\?\>"
+syn match abapComplexStatement "\<RADIOBUTTON\W\+GROUP\>"
+syn match abapComplexStatement "\<REF\W\+TO\>"
+syn match abapComplexStatement "\<\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?\>"
+syn match abapComplexStatement "\<DELETING\W\+\(TRAILING\|LEADING\)\>"
+syn match abapComplexStatement "\<\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)\>"
+syn match abapComplexStatement "\<INHERITING\W\+FROM\>"
+syn match abapComplexStatement "\<\(UP\W\+\)\?TO\>"
+
+" hyphenated-word statements
+syn match abapComplexStatement "\<LINE-COUNT\>"
+syn match abapComplexStatement "\<ADD-CORRESPONDING\>"
+syn match abapComplexStatement "\<AUTHORITY-CHECK\>"
+syn match abapComplexStatement "\<BREAK-POINT\>"
+syn match abapComplexStatement "\<CLASS-DATA\>"
+syn match abapComplexStatement "\<CLASS-METHODS\>"
+syn match abapComplexStatement "\<CLASS-METHOD\>"
+syn match abapComplexStatement "\<DIVIDE-CORRESPONDING\>"
+syn match abapComplexStatement "\<EDITOR-CALL\>"
+syn match abapComplexStatement "\<END-OF-DEFINITION\>"
+syn match abapComplexStatement "\<END-OF-PAGE\>"
+syn match abapComplexStatement "\<END-OF-SELECTION\>"
+syn match abapComplexStatement "\<FIELD-GROUPS\>"
+syn match abapComplexStatement "\<FIELD-SYMBOLS\>"
+syn match abapComplexStatement "\<FUNCTION-POOL\>"
+syn match abapComplexStatement "\<IS\W\+\(NOT\W\+\)\?\(ASSIGNED\|BOUND\|INITIAL\|SUPPLIED\)\>"
+syn match abapComplexStatement "\<MOVE-CORRESPONDING\>"
+syn match abapComplexStatement "\<MULTIPLY-CORRESPONDING\>"
+syn match abapComplexStatement "\<NEW-LINE\>"
+syn match abapComplexStatement "\<NEW-PAGE\>"
+syn match abapComplexStatement "\<NEW-SECTION\>"
+syn match abapComplexStatement "\<PRINT-CONTROL\>"
+syn match abapComplexStatement "\<RP-PROVIDE-FROM-LAST\>"
+syn match abapComplexStatement "\<SELECT-OPTIONS\>"
+syn match abapComplexStatement "\<SELECTION-SCREEN\>"
+syn match abapComplexStatement "\<START-OF-SELECTION\>"
+syn match abapComplexStatement "\<SUBTRACT-CORRESPONDING\>"
+syn match abapComplexStatement "\<SYNTAX-CHECK\>"
+syn match abapComplexStatement "\<SYNTAX-TRACE\>"
+syn match abapComplexStatement "\<TOP-OF-PAGE\>"
+syn match abapComplexStatement "\<TYPE-POOL\>"
+syn match abapComplexStatement "\<TYPE-POOLS\>"
+syn match abapComplexStatement "\<LINE-SIZE\>"
+syn match abapComplexStatement "\<LINE-COUNT\>"
+syn match abapComplexStatement "\<MESSAGE-ID\>"
+syn match abapComplexStatement "\<DISPLAY-MODE\>"
+syn match abapComplexStatement "\<READ\(-ONLY\)\?\>"
+
+" ABAP statements
+syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT
+syn keyword abapStatement BACK
+syn keyword abapStatement CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY
+syn keyword abapStatement DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO
+syn keyword abapStatement ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT
+syn keyword abapStatement FETCH FIELDS FORM FORMAT FREE FROM FUNCTION
+syn keyword abapStatement GENERATE GET
+syn keyword abapStatement HIDE
+syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION
+syn keyword abapStatement LEAVE LIKE LINE LOAD LOCAL LOOP
+syn keyword abapStatement MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY
+syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS
+syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT
+syn keyword abapStatement RAISE RANGES RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK
+syn keyword abapStatement SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS
+syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES
+syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE
+syn keyword abapStatement WHEN WHILE WINDOW WRITE
+
+" More statemets
+syn keyword abapStatement LINES
+syn keyword abapStatement INTO GROUP BY HAVING ORDER BY SINGLE
+syn keyword abapStatement APPENDING CORRESPONDING FIELDS OF TABLE
+syn keyword abapStatement LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER ROWS CONNECTING
+syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY
+syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR
+syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT
+syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT
+
+" Special ABAP specific tables:
+syn match abapSpecialTables "\<\(sy\|\(hrp\|p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
+syn match abapStructure "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement
+syn match abapField "-\w\+"ms=s+1
+
+" Pointer
+syn match abapSpecial "<\w\+>"
+
+" Abap common constants:
+syn keyword abapSpecial TRUE FALSE NULL SPACE
+
+" Includes
+syn region abapInclude start="include" end="." contains=abapComment
+
+" Types
+syn keyword abapTypes c n i p f d t x string xstring decfloat16 decfloat34
+
+" Atritmitic operators
+syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin tan
+syn keyword abapOperator cosh sinh tanh exp log log10 sqrt
+
+" String operators
+syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen
+
+syn keyword abapOperator EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN
+
+" An error? Not strictly... but cannot think of reason this is intended.
+syn match abapError "\.\."
+
+" Comments
+syn region abapComment start="^\*" end="$" contains=abapTodo
+syn match abapComment "\".*" contains=abapTodo
+syn keyword abapTodo contained TODO NOTE
+syn match abapTodo "\#EC\W\+\w\+"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_abap_syntax_inits")
+ if version < 508
+ let did_abap_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink abapError Error
+ HiLink abapComment Comment
+ HiLink abapInclude Include
+ HiLink abapStatement Statement
+ HiLink abapComplexStatement Statement
+ HiLink abapSpecial Special
+ HiLink abapNamespace Special
+ HiLink abapSpecialTables Special
+ HiLink abapSymbolOperator abapOperator
+ HiLink abapOperator Operator
+ HiLink abapCharString String
+ HiLink abapString String
+ HiLink abapFloat Float
+ HiLink abapTypes Type
+ HiLink abapSymbol Structure
+ HiLink abapStructure Structure
+ HiLink abapField Variable
+ HiLink abapNumber Number
+ HiLink abapHex Number
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "abap"
+
+" vim: ts=8 sw=2
+