From 371afd3515b8fa6ef92d61eeb7cea48a83668bc5 Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Mon, 21 Sep 2020 18:10:37 -0400 Subject: [PATCH 1/3] Overhaul of ABAP language based on release 7.54 --- src/abap/abap.ts | 1451 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 1021 insertions(+), 430 deletions(-) diff --git a/src/abap/abap.ts b/src/abap/abap.ts index eb61ad7f..a7abd017 100644 --- a/src/abap/abap.ts +++ b/src/abap/abap.ts @@ -3,6 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------------------------- + * Based on SAP ABAP Application Server 7.54 + * Reference: + * https://help.sap.com/doc/abapdocu_754_index_htm/7.54/en-US/index.htm?file=abenabap_words.htm + *--------------------------------------------------------------------------------------------*/ + import type { languages } from '../fillers/monaco-editor-core'; export const conf: languages.LanguageConfiguration = { @@ -16,410 +22,906 @@ export const conf: languages.LanguageConfiguration = { }; const abapKeywords = [ - 'abstract', - 'add', - 'add-corresponding', - 'adjacent', - 'alias', - 'aliases', - 'all', - 'append', - 'appending', - 'ascending', - 'as', - 'assert', - 'assign', - 'assigned', - 'assigning', - 'association', - 'authority-check', - 'back', - 'begin', - 'binary', - 'block', - 'bound', - 'break-point', - 'by', - 'byte', - 'class', - 'call', - 'cast', - 'changing', - 'check', - 'class-data', - 'class-method', - 'class-methods', - 'clear', - 'close', - 'cnt', - 'collect', - 'commit', - 'cond', - 'character', - 'corresponding', - 'communication', - 'component', - 'compute', - 'concatenate', - 'condense', - 'constants', - 'conv', - 'count', - 'controls', - 'convert', - 'create', - 'currency', - 'data', - 'descending', - 'default', - 'define', - 'deferred', - 'delete', - 'describe', - 'detail', - 'display', - 'divide', - 'divide-corresponding', - 'display-mode', - 'duplicates', - 'deleting', - 'editor-call', - 'end', - 'endexec', - 'endfunction', - 'ending', - 'endmodule', - 'end-of-definition', - 'end-of-page', - 'end-of-selection', - 'end-test-injection', - 'end-test-seam', - 'exit-command', - 'endclass', - 'endmethod', - 'endform', - 'endinterface', - 'endprovide', - 'endselect', - 'endtry', - 'endwhile', - 'enum', - 'event', - 'events', - 'exec', - 'exit', - 'export', - 'exporting', - 'extract', - 'exception', - 'exceptions', - 'form', - 'field-symbols', - 'field-groups', - 'field', - 'first', - 'fetch', - 'fields', - 'format', - 'frame', - 'free', - 'from', - 'function', - 'find', - 'for', - 'found', - 'function-pool', - 'generate', - 'get', - 'handle', - 'hide', - 'hashed', - 'include', - 'import', - 'importing', - 'index', - 'infotypes', - 'initial', - 'initialization', - 'id', - 'is', - 'in', - 'interface', - 'interfaces', - 'init', - 'input', - 'insert', - 'instance', - 'into', - 'implemented', - 'key', - 'left-justified', - 'leave', - 'like', - 'line', - 'line-count', - 'line-size', - 'load', - 'local', - 'log-point', - 'length', - 'left', - 'leading', - 'lower', - 'matchcode', - 'method', - 'mesh', - 'message', - 'message-id', - 'methods', - 'modify', - 'module', - 'move', - 'move-corresponding', - 'multiply', - 'multiply-corresponding', - 'match', - 'mode', - 'not', - 'new', - 'new-line', - 'new-page', - 'new-section', - 'next', - 'no', - 'no-gap', - 'no-gaps', - 'no-sign', - 'no-zero', - 'non-unique', - 'number', - 'occurrence', - 'object', - 'obligatory', - 'of', - 'output', - 'overlay', - 'optional', - 'others', - 'occurrences', - 'occurs', - 'offset', - 'options', - 'pack', - 'parameters', - 'perform', - 'places', - 'position', - 'print-control', - 'private', - 'program', - 'protected', - 'provide', - 'public', - 'put', - 'partially', - 'radiobutton', - 'raising', - 'ranges', - 'receive', - 'receiving', - 'redefinition', - 'reduce', - 'reference', - 'refresh', - 'regex', - 'reject', - 'results', - 'requested', - 'ref', - 'replace', - 'report', - 'reserve', - 'restore', - 'result', - 'return', - 'returning', - 'right-justified', - 'rollback', - 'read', - 'read-only', - 'rp-provide-from-last', - 'run', - 'scan', - 'screen', - 'scroll', - 'search', - 'select', - 'select-options', - 'selection-screen', - 'stamp', - 'source', - 'subkey', - 'subscreen', - 'separated', - 'set', - 'shift', - 'single', - 'skip', - 'sort', - 'sorted', - 'split', - 'standard', - 'stamp', - 'starting', - 'start-of-selection', - 'sum', - 'subtract-corresponding', - 'statics', - 'step', - 'stop', - 'structure', - 'submatches', - 'submit', - 'subtract', - 'summary', - 'supplied', - 'suppress', - 'section', - 'syntax-check', - 'syntax-trace', - 'system-call', - 'switch', - 'tables', - 'table', - 'task', - 'testing', - 'test-seam', - 'test-injection', - 'then', - 'time', - 'times', - 'title', - 'titlebar', - 'to', - 'top-of-page', - 'trailing', - 'transfer', - 'transformation', - 'translate', - 'transporting', - 'types', - 'type', - 'type-pool', - 'type-pools', - 'tabbed', - 'unassign', - 'unique', - 'uline', - 'unpack', - 'update', - 'upper', - 'using', - 'user-command', - 'value', - 'when', - 'while', - 'window', - 'write', - 'where', - 'with', - 'work', - 'at', - 'case', - 'catch', - 'continue', - 'do', - 'elseif', - 'else', - 'endat', - 'endcase', - 'enddo', - 'endif', - 'endloop', - 'endon', - 'if', - 'loop', - 'on', - 'raise', - 'try', - // built-in: - 'abs', - 'sign', - 'ceil', - 'floor', - 'trunc', - 'frac', - 'acos', - 'asin', - 'atan', - 'cos', - 'sin', - 'tan', - 'cosh', - 'sinh', - 'tanh', - 'exp', - 'log', - 'log10', - 'sqrt', - 'strlen', - 'xstrlen', - 'charlen', - 'lines', - 'numofchar', - 'dbmaxlen', - 'round', - 'rescale', - 'nmax', - 'nmin', - 'cmax', - 'cmin', - 'boolc', - 'boolx', - 'xsdbool', - 'contains', - 'contains_any_of', - 'contains_any_not_of', - 'matches', - 'line_exists', - 'ipow', - 'char_off', - 'count', - 'count_any_of', - 'count_any_not_of', - 'distance', - 'condense', - 'concat_lines_of', - 'escape', - 'find', - 'find_end', - 'find_any_of', - 'find_any_not_of', - 'insert', - 'match', - 'repeat', - 'replace', - 'reverse', - 'segment', - 'shift_left', - 'shift_right', - 'substring', - 'substring_after', - 'substring_from', - 'substring_before', - 'substring_to', - 'to_upper', - 'to_lower', - 'to_mixed', - 'from_mixed', - 'translate', - 'bit-set', - 'line_index', - 'definition', - 'implementation', - 'public', - 'inheriting', - 'final' + // words + 'abap-source', + 'abbreviated', + 'abstract', + 'accept', + 'accepting', + 'according', + 'activation', + 'actual', + 'add', + 'add-corresponding', + 'adjacent', + 'after', + 'alias', + 'aliases', + 'align', + 'all', + 'allocate', + 'alpha', + 'analysis', + 'analyzer', + 'append', + 'appendage', + 'appending', + 'application', + 'archive', + 'area', + 'arithmetic', + 'as', + 'ascending', + 'aspect', + 'assert', + 'assign', + 'assigned', + 'assigning', + 'association', + 'asynchronous', + 'at', + 'attributes', + 'authority', + 'authority-check', + 'avg', + 'back', + 'background', + 'backup', + 'backward', + 'badi', + 'base', + 'before', + 'begin', + 'big', + 'binary', + 'bintohex', + 'bit', + 'black', + 'blank', + 'blanks', + 'blob', + 'block', + 'blocks', + 'blue', + 'bound', + 'boundaries', + 'bounds', + 'boxed', + 'break-point', + 'buffer', + 'by', + 'bypassing', + 'byte', + 'byte-order', + 'call', + 'calling', + 'case', + 'cast', + 'casting', + 'catch', + 'center', + 'centered', + 'chain', + 'chain-input', + 'chain-request', + 'change', + 'changing', + 'channels', + 'character', + 'char-to-hex', + 'check', + 'checkbox', + 'ci_', + 'circular', + 'class', + 'class-coding', + 'class-data', + 'class-events', + 'class-methods', + 'class-pool', + 'cleanup', + 'clear', + 'client', + 'clob', + 'clock', + 'close', + 'coalesce', + 'code', + 'coding', + 'col_background', + 'col_group', + 'col_heading', + 'col_key', + 'col_negative', + 'col_normal', + 'col_positive', + 'col_total', + 'collect', + 'color', + 'column', + 'columns', + 'comment', + 'comments', + 'commit', + 'common', + 'communication', + 'comparing', + 'component', + 'components', + 'compression', + 'compute', + 'concat', + 'concat_with_space', + 'concatenate', + 'cond', + 'condition', + 'connect', + 'connection', + 'constants', + 'context', + 'contexts', + 'continue', + 'control', + 'controls', + 'conv', + 'conversion', + 'convert', + 'copies', + 'copy', + 'corresponding', + 'country', + 'cover', + 'cpi', + 'create', + 'creating', + 'critical', + 'currency', + 'currency_conversion', + 'current', + 'cursor', + 'cursor-selection', + 'customer', + 'customer-function', + 'dangerous', + 'data', + 'database', + 'datainfo', + 'dataset', + 'date', + 'dats_add_days', + 'dats_add_months', + 'dats_days_between', + 'dats_is_valid', + 'daylight', + 'dd/mm/yy', + 'dd/mm/yyyy', + 'ddmmyy', + 'deallocate', + 'decimal_shift', + 'decimals', + 'declarations', + 'deep', + 'default', + 'deferred', + 'define', + 'defining', + 'definition', + 'delete', + 'deleting', + 'demand', + 'department', + 'descending', + 'describe', + 'destination', + 'detail', + 'dialog', + 'directory', + 'disconnect', + 'display', + 'display-mode', + 'distinct', + 'divide', + 'divide-corresponding', + 'division', + 'do', + 'dummy', + 'duplicate', + 'duplicates', + 'duration', + 'during', + 'dynamic', + 'dynpro', + 'edit', + 'editor-call', + 'else', + 'elseif', + 'empty', + 'enabled', + 'enabling', + 'encoding', + 'end', + 'endat', + 'endcase', + 'endcatch', + 'endchain', + 'endclass', + 'enddo', + 'endenhancement', + 'end-enhancement-section', + 'endexec', + 'endform', + 'endfunction', + 'endian', + 'endif', + 'ending', + 'endinterface', + 'end-lines', + 'endloop', + 'endmethod', + 'endmodule', + 'end-of-definition', + 'end-of-editing', + 'end-of-file', + 'end-of-page', + 'end-of-selection', + 'endon', + 'endprovide', + 'endselect', + 'end-test-injection', + 'end-test-seam', + 'endtry', + 'endwhile', + 'endwith', + 'engineering', + 'enhancement', + 'enhancement-point', + 'enhancements', + 'enhancement-section', + 'entries', + 'entry', + 'enum', + 'environment', + 'errormessage', + 'errors', + 'escaping', + 'event', + 'events', + 'exact', + 'except', + 'exception', + 'exceptions', + 'exception-table', + 'exclude', + 'excluding', + 'exec', + 'execute', + 'exists', + 'exit', + 'exit-command', + 'expand', + 'expanding', + 'expiration', + 'explicit', + 'exponent', + 'export', + 'exporting', + 'extend', + 'extended', + 'extension', + 'extract', + 'fail', + 'fetch', + 'field', + 'field-groups', + 'fields', + 'field-symbol', + 'field-symbols', + 'file', + 'filter', + 'filters', + 'filter-table', + 'final', + 'first', + 'first-line', + 'fixed-point', + 'fkeq', + 'fkge', + 'flush', + 'font', + 'for', + 'form', + 'format', + 'forward', + 'found', + 'frame', + 'frames', + 'free', + 'friends', + 'from', + 'function', + 'functionality', + 'function-pool', + 'further', + 'gaps', + 'generate', + 'get', + 'giving', + 'gkeq', + 'gkge', + 'global', + 'grant', + 'green', + 'group', + 'groups', + 'handle', + 'handler', + 'harmless', + 'hashed', + 'having', + 'hdb', + 'header', + 'headers', + 'heading', + 'head-lines', + 'help-id', + 'help-request', + 'hextobin', + 'hide', + 'high', + 'hint', + 'hold', + 'hotspot', + 'icon', + 'id', + 'identification', + 'identifier', + 'ids', + 'if', + 'ignore', + 'ignoring', + 'immediately', + 'implementation', + 'implementations', + 'implemented', + 'implicit', + 'import', + 'importing', + 'inactive', + 'incl', + 'include', + 'includes', + 'including', + 'increment', + 'index', + 'index-line', + 'infotypes', + 'inheriting', + 'init', + 'initial', + 'initialization', + 'inner', + 'inout', + 'input', + 'instance', + 'instances', + 'instr', + 'intensified', + 'interface', + 'interface-pool', + 'interfaces', + 'internal', + 'intervals', + 'into', + 'inverse', + 'inverted-date', + 'is', + 'iso', + 'job', + 'join', + 'keep', + 'keeping', + 'kernel', + 'key', + 'keys', + 'keywords', + 'kind', + 'language', + 'last', + 'late', + 'layout', + 'leading', + 'leave', + 'left', + 'left-justified', + 'leftplus', + 'leftspace', + 'legacy', + 'length', + 'let', + 'level', + 'levels', + 'like', + 'line', + 'line-count', + 'linefeed', + 'line-selection', + 'line-size', + 'list', + 'listbox', + 'list-processing', + 'little', + 'llang', + 'load', + 'load-of-program', + 'lob', + 'local', + 'locale', + 'locator', + 'logfile', + 'logical', + 'log-point', + 'long', + 'loop', + 'low', + 'lower', + 'lpad', + 'lpi', + 'ltrim', + 'mail', + 'main', + 'major-id', + 'mapping', + 'margin', + 'mark', + 'mask', + 'matchcode', + 'max', + 'maximum', + 'medium', + 'members', + 'memory', + 'mesh', + 'message', + 'message-id', + 'messages', + 'messaging', + 'method', + 'methods', + 'min', + 'minimum', + 'minor-id', + 'mm/dd/yy', + 'mm/dd/yyyy', + 'mmddyy', + 'mode', + 'modif', + 'modifier', + 'modify', + 'module', + 'move', + 'move-corresponding', + 'multiply', + 'multiply-corresponding', + 'name', + 'nametab', + 'native', + 'nested', + 'nesting', + 'new', + 'new-line', + 'new-page', + 'new-section', + 'next', + 'no', + 'node', + 'nodes', + 'no-display', + 'no-extension', + 'no-gap', + 'no-gaps', + 'no-grouping', + 'no-heading', + 'non-unicode', + 'non-unique', + 'no-scrolling', + 'no-sign', + 'no-title', + 'no-topofpage', + 'no-zero', + 'null', + 'number', + 'object', + 'objects', + 'obligatory', + 'occurrence', + 'occurrences', + 'occurs', + 'of', + 'off', + 'offset', + 'ole', + 'on', + 'only', + 'open', + 'option', + 'optional', + 'options', + 'order', + 'other', + 'others', + 'out', + 'outer', + 'output', + 'output-length', + 'overflow', + 'overlay', + 'pack', + 'package', + 'pad', + 'padding', + 'page', + 'pages', + 'parameter', + 'parameters', + 'parameter-table', + 'part', + 'partially', + 'pattern', + 'percentage', + 'perform', + 'performing', + 'person', + 'pf', + 'pf-status', + 'pink', + 'places', + 'pool', + 'pos_high', + 'pos_low', + 'position', + 'pragmas', + 'precompiled', + 'preferred', + 'preserving', + 'primary', + 'print', + 'print-control', + 'priority', + 'private', + 'procedure', + 'process', + 'program', + 'property', + 'protected', + 'provide', + 'public', + 'push', + 'pushbutton', + 'put', + 'queue-only', + 'quickinfo', + 'radiobutton', + 'raise', + 'raising', + 'range', + 'ranges', + 'read', + 'reader', + 'read-only', + 'receive', + 'received', + 'receiver', + 'receiving', + 'red', + 'redefinition', + 'reduce', + 'reduced', + 'ref', + 'reference', + 'refresh', + 'regex', + 'reject', + 'remote', + 'renaming', + 'replacement', + 'replacing', + 'report', + 'request', + 'requested', + 'reserve', + 'reset', + 'resolution', + 'respecting', + 'responsible', + 'result', + 'results', + 'resumable', + 'resume', + 'retry', + 'return', + 'returncode', + 'returning', + 'returns', + 'right', + 'right-justified', + 'rightplus', + 'rightspace', + 'risk', + 'rmc_communication_failure', + 'rmc_invalid_status', + 'rmc_system_failure', + 'role', + 'rollback', + 'rows', + 'rpad', + 'rtrim', + 'run', + 'sap', + 'sap-spool', + 'saving', + 'scale_preserving', + 'scale_preserving_scientific', + 'scan', + 'scientific', + 'scientific_with_leading_zero', + 'scroll', + 'scroll-boundary', + 'scrolling', + 'search', + 'secondary', + 'seconds', + 'section', + 'select', + 'selection', + 'selections', + 'selection-screen', + 'selection-set', + 'selection-sets', + 'selection-table', + 'select-options', + 'send', + 'separate', + 'separated', + 'set', + 'shared', + 'shift', + 'short', + 'shortdump-id', + 'sign_as_postfix', + 'single', + 'size', + 'skip', + 'skipping', + 'smart', + 'some', + 'sort', + 'sortable', + 'sorted', + 'source', + 'specified', + 'split', + 'spool', + 'spots', + 'sql', + 'sqlscript', + 'stable', + 'stamp', + 'standard', + 'starting', + 'start-of-editing', + 'start-of-selection', + 'state', + 'statement', + 'statements', + 'static', + 'statics', + 'statusinfo', + 'step-loop', + 'stop', + 'structure', + 'structures', + 'style', + 'subkey', + 'submatches', + 'submit', + 'subroutine', + 'subscreen', + 'subtract', + 'subtract-corresponding', + 'suffix', + 'sum', + 'summary', + 'summing', + 'supplied', + 'supply', + 'suppress', + 'switch', + 'switchstates', + 'symbol', + 'syncpoints', + 'syntax', + 'syntax-check', + 'syntax-trace', + 'system-call', + 'system-exceptions', + 'system-exit', + 'tab', + 'tabbed', + 'tables', + 'tableview', + 'tabstrip', + 'target', + 'task', + 'tasks', + 'test', + 'testing', + 'test-injection', + 'test-seam', + 'text', + 'textpool', + 'then', + 'throw', + 'time', + 'times', + 'timestamp', + 'timezone', + 'tims_is_valid', + 'title', + 'titlebar', + 'title-lines', + 'to', + 'tokenization', + 'tokens', + 'top-lines', + 'top-of-page', + 'trace-file', + 'trace-table', + 'trailing', + 'transaction', + 'transfer', + 'transformation', + 'transporting', + 'trmac', + 'truncate', + 'truncation', + 'try', + 'tstmp_add_seconds', + 'tstmp_current_utctimestamp', + 'tstmp_is_valid', + 'tstmp_seconds_between', + 'type', + 'type-pool', + 'type-pools', + 'types', + 'uline', + 'unassign', + 'under', + 'unicode', + 'union', + 'unique', + 'unit_conversion', + 'unix', + 'unpack', + 'until', + 'unwind', + 'up', + 'update', + 'upper', + 'user', + 'user-command', + 'using', + 'utf-8', + 'valid', + 'value', + 'value-request', + 'values', + 'vary', + 'varying', + 'verification-message', + 'version', + 'via', + 'view', + 'visible', + 'wait', + 'warning', + 'when', + 'whenever', + 'where', + 'while', + 'width', + 'window', + 'windows', + 'with', + 'with-heading', + 'without', + 'with-title', + 'word', + 'work', + 'write', + 'writer', + 'xml', + 'xsd', + 'yellow', + 'yes', + 'yymmdd', + 'zero', + 'zone', + // built-ins + 'abs', + 'acos', + 'asin', + 'atan', + 'bit-set', + 'boolc', + 'boolx', + 'ceil', + 'char_off', + 'charlen', + 'cmax', + 'cmin', + 'concat_lines_of', + 'condense', + 'contains', + 'contains_any_not_of', + 'contains_any_of', + 'cos', + 'cosh', + 'count', + 'count_any_not_of', + 'count_any_of', + 'dbmaxlen', + 'distance', + 'escape', + 'exp', + 'find', + 'find_any_not_of', + 'find_any_of', + 'find_end', + 'floor', + 'frac', + 'from_mixed', + 'insert', + 'ipow', + 'line_exists', + 'line_index', + 'lines', + 'log', + 'log10', + 'match', + 'matches', + 'nmax', + 'nmin', + 'numofchar', + 'repeat', + 'replace', + 'rescale', + 'reverse', + 'round', + 'segment', + 'shift_left', + 'shift_right', + 'sign', + 'sin', + 'sinh', + 'sqrt', + 'strlen', + 'substring', + 'substring_after', + 'substring_before', + 'substring_from', + 'substring_to', + 'tan', + 'tanh', + 'to_lower', + 'to_mixed', + 'to_upper', + 'translate', + 'trunc', + 'utclong_add', // since 7.54 + 'utclong_current', // since 7.54 + 'utclong_diff', // since 7.54 + 'xsdbool', + 'xstrlen' ]; export const language = { @@ -429,52 +931,141 @@ export const language = { keywords: abapKeywords, typeKeywords: [ - 'abap_bool', + // built-in data types + 'b', + 'c', + 'd', + 'decfloat16', + 'decfloat34', + 'f', + 'i', + 'int8', // since 7.54 + 'n', + 'p', + 's', 'string', + 't', + 'utclong', // since 7.54 + 'x', 'xstring', + // generic data types 'any', 'clike', 'csequence', + 'decfloat', 'numeric', + 'simple', 'xsequence', - 'c', - 'n', - 'i', - 'p', - 'f', - 'd', - 't', - 'x' + // generic table types + 'table', + // 'any table', + 'hashed', // 'hashed table', + 'index', // 'index table', + 'sorted', // 'sorted table', + 'standard', // 'standard table', + // ddic data types + 'accp', + 'char', + 'clnt', + 'cuky', + 'curr', + 'dats', + 'dec', + 'df16_dec', + 'df16_raw', + 'df34_dec', + 'df34_raw', + 'fltp', + 'int1', + 'int2', + 'int4', + // 'int8', built-in since 7.54 + 'lang', + 'lchr', + 'lraw', + 'numc', + 'quan', + 'raw', + 'rawstring', + 'sstring', + 'tims', + 'unit', + // ddic data types (obsolete) + 'df16_scl', + 'df34_scl', + 'prec', + 'varc', + // special data types + 'abap_bool', + 'space', + 'me', + 'syst', + 'sy', + 'screen' ], operators: [ + // arithmetic operators ' +', ' -', '/', '*', + '**', + 'div', + 'mod', + // assignment operators '=', + '#', + '@', + // concat operators + '&', + '&&', + // bit operators + 'bit-and', + 'bit-not', + 'bit-or', + 'bit-xor', + 'm', + 'o', + 'z', + // boolean operators + 'and', + 'equiv', + 'not', + 'or', + // comparison operators ' < ', ' > ', '<=', '>=', '<>', - '><', - '=<', - '=>', - '#', - '@', - 'EQ', - 'NE', - 'GE', - 'LE', - 'CS', - 'CN', - 'CA', - 'CO', - 'CP', - 'NS', - 'NA', - 'NP' + '><', // obsolete + '=<', // obsolete + '=>', // obsolete + 'between', + 'bt', + 'byte-ca', + 'byte-cn', + 'byte-co', + 'byte-cs', + 'byte-na', + 'byte-ns', + 'ca', + 'cn', + 'co', + 'cp', + 'cs', + 'eq', // obsolete + 'ge', // obsolete + 'gt', // obsolete + 'in', + 'le', // obsolete + 'lt', // obsolete + 'na', + 'nb', + 'ne', // obsolete + 'np', + 'ns' ], symbols: /[=> Date: Mon, 21 Sep 2020 18:15:45 -0400 Subject: [PATCH 2/3] Indentation --- src/abap/abap.ts | 1800 +++++++++++++++++++++++----------------------- 1 file changed, 900 insertions(+), 900 deletions(-) diff --git a/src/abap/abap.ts b/src/abap/abap.ts index a7abd017..865edc00 100644 --- a/src/abap/abap.ts +++ b/src/abap/abap.ts @@ -23,905 +23,905 @@ export const conf: languages.LanguageConfiguration = { const abapKeywords = [ // words - 'abap-source', - 'abbreviated', - 'abstract', - 'accept', - 'accepting', - 'according', - 'activation', - 'actual', - 'add', - 'add-corresponding', - 'adjacent', - 'after', - 'alias', - 'aliases', - 'align', - 'all', - 'allocate', - 'alpha', - 'analysis', - 'analyzer', - 'append', - 'appendage', - 'appending', - 'application', - 'archive', - 'area', - 'arithmetic', - 'as', - 'ascending', - 'aspect', - 'assert', - 'assign', - 'assigned', - 'assigning', - 'association', - 'asynchronous', - 'at', - 'attributes', - 'authority', - 'authority-check', - 'avg', - 'back', - 'background', - 'backup', - 'backward', - 'badi', - 'base', - 'before', - 'begin', - 'big', - 'binary', - 'bintohex', - 'bit', - 'black', - 'blank', - 'blanks', - 'blob', - 'block', - 'blocks', - 'blue', - 'bound', - 'boundaries', - 'bounds', - 'boxed', - 'break-point', - 'buffer', - 'by', - 'bypassing', - 'byte', - 'byte-order', - 'call', - 'calling', - 'case', - 'cast', - 'casting', - 'catch', - 'center', - 'centered', - 'chain', - 'chain-input', - 'chain-request', - 'change', - 'changing', - 'channels', - 'character', - 'char-to-hex', - 'check', - 'checkbox', - 'ci_', - 'circular', - 'class', - 'class-coding', - 'class-data', - 'class-events', - 'class-methods', - 'class-pool', - 'cleanup', - 'clear', - 'client', - 'clob', - 'clock', - 'close', - 'coalesce', - 'code', - 'coding', - 'col_background', - 'col_group', - 'col_heading', - 'col_key', - 'col_negative', - 'col_normal', - 'col_positive', - 'col_total', - 'collect', - 'color', - 'column', - 'columns', - 'comment', - 'comments', - 'commit', - 'common', - 'communication', - 'comparing', - 'component', - 'components', - 'compression', - 'compute', - 'concat', - 'concat_with_space', - 'concatenate', - 'cond', - 'condition', - 'connect', - 'connection', - 'constants', - 'context', - 'contexts', - 'continue', - 'control', - 'controls', - 'conv', - 'conversion', - 'convert', - 'copies', - 'copy', - 'corresponding', - 'country', - 'cover', - 'cpi', - 'create', - 'creating', - 'critical', - 'currency', - 'currency_conversion', - 'current', - 'cursor', - 'cursor-selection', - 'customer', - 'customer-function', - 'dangerous', - 'data', - 'database', - 'datainfo', - 'dataset', - 'date', - 'dats_add_days', - 'dats_add_months', - 'dats_days_between', - 'dats_is_valid', - 'daylight', - 'dd/mm/yy', - 'dd/mm/yyyy', - 'ddmmyy', - 'deallocate', - 'decimal_shift', - 'decimals', - 'declarations', - 'deep', - 'default', - 'deferred', - 'define', - 'defining', - 'definition', - 'delete', - 'deleting', - 'demand', - 'department', - 'descending', - 'describe', - 'destination', - 'detail', - 'dialog', - 'directory', - 'disconnect', - 'display', - 'display-mode', - 'distinct', - 'divide', - 'divide-corresponding', - 'division', - 'do', - 'dummy', - 'duplicate', - 'duplicates', - 'duration', - 'during', - 'dynamic', - 'dynpro', - 'edit', - 'editor-call', - 'else', - 'elseif', - 'empty', - 'enabled', - 'enabling', - 'encoding', - 'end', - 'endat', - 'endcase', - 'endcatch', - 'endchain', - 'endclass', - 'enddo', - 'endenhancement', - 'end-enhancement-section', - 'endexec', - 'endform', - 'endfunction', - 'endian', - 'endif', - 'ending', - 'endinterface', - 'end-lines', - 'endloop', - 'endmethod', - 'endmodule', - 'end-of-definition', - 'end-of-editing', - 'end-of-file', - 'end-of-page', - 'end-of-selection', - 'endon', - 'endprovide', - 'endselect', - 'end-test-injection', - 'end-test-seam', - 'endtry', - 'endwhile', - 'endwith', - 'engineering', - 'enhancement', - 'enhancement-point', - 'enhancements', - 'enhancement-section', - 'entries', - 'entry', - 'enum', - 'environment', - 'errormessage', - 'errors', - 'escaping', - 'event', - 'events', - 'exact', - 'except', - 'exception', - 'exceptions', - 'exception-table', - 'exclude', - 'excluding', - 'exec', - 'execute', - 'exists', - 'exit', - 'exit-command', - 'expand', - 'expanding', - 'expiration', - 'explicit', - 'exponent', - 'export', - 'exporting', - 'extend', - 'extended', - 'extension', - 'extract', - 'fail', - 'fetch', - 'field', - 'field-groups', - 'fields', - 'field-symbol', - 'field-symbols', - 'file', - 'filter', - 'filters', - 'filter-table', - 'final', - 'first', - 'first-line', - 'fixed-point', - 'fkeq', - 'fkge', - 'flush', - 'font', - 'for', - 'form', - 'format', - 'forward', - 'found', - 'frame', - 'frames', - 'free', - 'friends', - 'from', - 'function', - 'functionality', - 'function-pool', - 'further', - 'gaps', - 'generate', - 'get', - 'giving', - 'gkeq', - 'gkge', - 'global', - 'grant', - 'green', - 'group', - 'groups', - 'handle', - 'handler', - 'harmless', - 'hashed', - 'having', - 'hdb', - 'header', - 'headers', - 'heading', - 'head-lines', - 'help-id', - 'help-request', - 'hextobin', - 'hide', - 'high', - 'hint', - 'hold', - 'hotspot', - 'icon', - 'id', - 'identification', - 'identifier', - 'ids', - 'if', - 'ignore', - 'ignoring', - 'immediately', - 'implementation', - 'implementations', - 'implemented', - 'implicit', - 'import', - 'importing', - 'inactive', - 'incl', - 'include', - 'includes', - 'including', - 'increment', - 'index', - 'index-line', - 'infotypes', - 'inheriting', - 'init', - 'initial', - 'initialization', - 'inner', - 'inout', - 'input', - 'instance', - 'instances', - 'instr', - 'intensified', - 'interface', - 'interface-pool', - 'interfaces', - 'internal', - 'intervals', - 'into', - 'inverse', - 'inverted-date', - 'is', - 'iso', - 'job', - 'join', - 'keep', - 'keeping', - 'kernel', - 'key', - 'keys', - 'keywords', - 'kind', - 'language', - 'last', - 'late', - 'layout', - 'leading', - 'leave', - 'left', - 'left-justified', - 'leftplus', - 'leftspace', - 'legacy', - 'length', - 'let', - 'level', - 'levels', - 'like', - 'line', - 'line-count', - 'linefeed', - 'line-selection', - 'line-size', - 'list', - 'listbox', - 'list-processing', - 'little', - 'llang', - 'load', - 'load-of-program', - 'lob', - 'local', - 'locale', - 'locator', - 'logfile', - 'logical', - 'log-point', - 'long', - 'loop', - 'low', - 'lower', - 'lpad', - 'lpi', - 'ltrim', - 'mail', - 'main', - 'major-id', - 'mapping', - 'margin', - 'mark', - 'mask', - 'matchcode', - 'max', - 'maximum', - 'medium', - 'members', - 'memory', - 'mesh', - 'message', - 'message-id', - 'messages', - 'messaging', - 'method', - 'methods', - 'min', - 'minimum', - 'minor-id', - 'mm/dd/yy', - 'mm/dd/yyyy', - 'mmddyy', - 'mode', - 'modif', - 'modifier', - 'modify', - 'module', - 'move', - 'move-corresponding', - 'multiply', - 'multiply-corresponding', - 'name', - 'nametab', - 'native', - 'nested', - 'nesting', - 'new', - 'new-line', - 'new-page', - 'new-section', - 'next', - 'no', - 'node', - 'nodes', - 'no-display', - 'no-extension', - 'no-gap', - 'no-gaps', - 'no-grouping', - 'no-heading', - 'non-unicode', - 'non-unique', - 'no-scrolling', - 'no-sign', - 'no-title', - 'no-topofpage', - 'no-zero', - 'null', - 'number', - 'object', - 'objects', - 'obligatory', - 'occurrence', - 'occurrences', - 'occurs', - 'of', - 'off', - 'offset', - 'ole', - 'on', - 'only', - 'open', - 'option', - 'optional', - 'options', - 'order', - 'other', - 'others', - 'out', - 'outer', - 'output', - 'output-length', - 'overflow', - 'overlay', - 'pack', - 'package', - 'pad', - 'padding', - 'page', - 'pages', - 'parameter', - 'parameters', - 'parameter-table', - 'part', - 'partially', - 'pattern', - 'percentage', - 'perform', - 'performing', - 'person', - 'pf', - 'pf-status', - 'pink', - 'places', - 'pool', - 'pos_high', - 'pos_low', - 'position', - 'pragmas', - 'precompiled', - 'preferred', - 'preserving', - 'primary', - 'print', - 'print-control', - 'priority', - 'private', - 'procedure', - 'process', - 'program', - 'property', - 'protected', - 'provide', - 'public', - 'push', - 'pushbutton', - 'put', - 'queue-only', - 'quickinfo', - 'radiobutton', - 'raise', - 'raising', - 'range', - 'ranges', - 'read', - 'reader', - 'read-only', - 'receive', - 'received', - 'receiver', - 'receiving', - 'red', - 'redefinition', - 'reduce', - 'reduced', - 'ref', - 'reference', - 'refresh', - 'regex', - 'reject', - 'remote', - 'renaming', - 'replacement', - 'replacing', - 'report', - 'request', - 'requested', - 'reserve', - 'reset', - 'resolution', - 'respecting', - 'responsible', - 'result', - 'results', - 'resumable', - 'resume', - 'retry', - 'return', - 'returncode', - 'returning', - 'returns', - 'right', - 'right-justified', - 'rightplus', - 'rightspace', - 'risk', - 'rmc_communication_failure', - 'rmc_invalid_status', - 'rmc_system_failure', - 'role', - 'rollback', - 'rows', - 'rpad', - 'rtrim', - 'run', - 'sap', - 'sap-spool', - 'saving', - 'scale_preserving', - 'scale_preserving_scientific', - 'scan', - 'scientific', - 'scientific_with_leading_zero', - 'scroll', - 'scroll-boundary', - 'scrolling', - 'search', - 'secondary', - 'seconds', - 'section', - 'select', - 'selection', - 'selections', - 'selection-screen', - 'selection-set', - 'selection-sets', - 'selection-table', - 'select-options', - 'send', - 'separate', - 'separated', - 'set', - 'shared', - 'shift', - 'short', - 'shortdump-id', - 'sign_as_postfix', - 'single', - 'size', - 'skip', - 'skipping', - 'smart', - 'some', - 'sort', - 'sortable', - 'sorted', - 'source', - 'specified', - 'split', - 'spool', - 'spots', - 'sql', - 'sqlscript', - 'stable', - 'stamp', - 'standard', - 'starting', - 'start-of-editing', - 'start-of-selection', - 'state', - 'statement', - 'statements', - 'static', - 'statics', - 'statusinfo', - 'step-loop', - 'stop', - 'structure', - 'structures', - 'style', - 'subkey', - 'submatches', - 'submit', - 'subroutine', - 'subscreen', - 'subtract', - 'subtract-corresponding', - 'suffix', - 'sum', - 'summary', - 'summing', - 'supplied', - 'supply', - 'suppress', - 'switch', - 'switchstates', - 'symbol', - 'syncpoints', - 'syntax', - 'syntax-check', - 'syntax-trace', - 'system-call', - 'system-exceptions', - 'system-exit', - 'tab', - 'tabbed', - 'tables', - 'tableview', - 'tabstrip', - 'target', - 'task', - 'tasks', - 'test', - 'testing', - 'test-injection', - 'test-seam', - 'text', - 'textpool', - 'then', - 'throw', - 'time', - 'times', - 'timestamp', - 'timezone', - 'tims_is_valid', - 'title', - 'titlebar', - 'title-lines', - 'to', - 'tokenization', - 'tokens', - 'top-lines', - 'top-of-page', - 'trace-file', - 'trace-table', - 'trailing', - 'transaction', - 'transfer', - 'transformation', - 'transporting', - 'trmac', - 'truncate', - 'truncation', - 'try', - 'tstmp_add_seconds', - 'tstmp_current_utctimestamp', - 'tstmp_is_valid', - 'tstmp_seconds_between', - 'type', - 'type-pool', - 'type-pools', - 'types', - 'uline', - 'unassign', - 'under', - 'unicode', - 'union', - 'unique', - 'unit_conversion', - 'unix', - 'unpack', - 'until', - 'unwind', - 'up', - 'update', - 'upper', - 'user', - 'user-command', - 'using', - 'utf-8', - 'valid', - 'value', - 'value-request', - 'values', - 'vary', - 'varying', - 'verification-message', - 'version', - 'via', - 'view', - 'visible', - 'wait', - 'warning', - 'when', - 'whenever', - 'where', - 'while', - 'width', - 'window', - 'windows', - 'with', - 'with-heading', - 'without', - 'with-title', - 'word', - 'work', - 'write', - 'writer', - 'xml', - 'xsd', - 'yellow', - 'yes', - 'yymmdd', - 'zero', - 'zone', + 'abap-source', + 'abbreviated', + 'abstract', + 'accept', + 'accepting', + 'according', + 'activation', + 'actual', + 'add', + 'add-corresponding', + 'adjacent', + 'after', + 'alias', + 'aliases', + 'align', + 'all', + 'allocate', + 'alpha', + 'analysis', + 'analyzer', + 'append', + 'appendage', + 'appending', + 'application', + 'archive', + 'area', + 'arithmetic', + 'as', + 'ascending', + 'aspect', + 'assert', + 'assign', + 'assigned', + 'assigning', + 'association', + 'asynchronous', + 'at', + 'attributes', + 'authority', + 'authority-check', + 'avg', + 'back', + 'background', + 'backup', + 'backward', + 'badi', + 'base', + 'before', + 'begin', + 'big', + 'binary', + 'bintohex', + 'bit', + 'black', + 'blank', + 'blanks', + 'blob', + 'block', + 'blocks', + 'blue', + 'bound', + 'boundaries', + 'bounds', + 'boxed', + 'break-point', + 'buffer', + 'by', + 'bypassing', + 'byte', + 'byte-order', + 'call', + 'calling', + 'case', + 'cast', + 'casting', + 'catch', + 'center', + 'centered', + 'chain', + 'chain-input', + 'chain-request', + 'change', + 'changing', + 'channels', + 'character', + 'char-to-hex', + 'check', + 'checkbox', + 'ci_', + 'circular', + 'class', + 'class-coding', + 'class-data', + 'class-events', + 'class-methods', + 'class-pool', + 'cleanup', + 'clear', + 'client', + 'clob', + 'clock', + 'close', + 'coalesce', + 'code', + 'coding', + 'col_background', + 'col_group', + 'col_heading', + 'col_key', + 'col_negative', + 'col_normal', + 'col_positive', + 'col_total', + 'collect', + 'color', + 'column', + 'columns', + 'comment', + 'comments', + 'commit', + 'common', + 'communication', + 'comparing', + 'component', + 'components', + 'compression', + 'compute', + 'concat', + 'concat_with_space', + 'concatenate', + 'cond', + 'condition', + 'connect', + 'connection', + 'constants', + 'context', + 'contexts', + 'continue', + 'control', + 'controls', + 'conv', + 'conversion', + 'convert', + 'copies', + 'copy', + 'corresponding', + 'country', + 'cover', + 'cpi', + 'create', + 'creating', + 'critical', + 'currency', + 'currency_conversion', + 'current', + 'cursor', + 'cursor-selection', + 'customer', + 'customer-function', + 'dangerous', + 'data', + 'database', + 'datainfo', + 'dataset', + 'date', + 'dats_add_days', + 'dats_add_months', + 'dats_days_between', + 'dats_is_valid', + 'daylight', + 'dd/mm/yy', + 'dd/mm/yyyy', + 'ddmmyy', + 'deallocate', + 'decimal_shift', + 'decimals', + 'declarations', + 'deep', + 'default', + 'deferred', + 'define', + 'defining', + 'definition', + 'delete', + 'deleting', + 'demand', + 'department', + 'descending', + 'describe', + 'destination', + 'detail', + 'dialog', + 'directory', + 'disconnect', + 'display', + 'display-mode', + 'distinct', + 'divide', + 'divide-corresponding', + 'division', + 'do', + 'dummy', + 'duplicate', + 'duplicates', + 'duration', + 'during', + 'dynamic', + 'dynpro', + 'edit', + 'editor-call', + 'else', + 'elseif', + 'empty', + 'enabled', + 'enabling', + 'encoding', + 'end', + 'endat', + 'endcase', + 'endcatch', + 'endchain', + 'endclass', + 'enddo', + 'endenhancement', + 'end-enhancement-section', + 'endexec', + 'endform', + 'endfunction', + 'endian', + 'endif', + 'ending', + 'endinterface', + 'end-lines', + 'endloop', + 'endmethod', + 'endmodule', + 'end-of-definition', + 'end-of-editing', + 'end-of-file', + 'end-of-page', + 'end-of-selection', + 'endon', + 'endprovide', + 'endselect', + 'end-test-injection', + 'end-test-seam', + 'endtry', + 'endwhile', + 'endwith', + 'engineering', + 'enhancement', + 'enhancement-point', + 'enhancements', + 'enhancement-section', + 'entries', + 'entry', + 'enum', + 'environment', + 'errormessage', + 'errors', + 'escaping', + 'event', + 'events', + 'exact', + 'except', + 'exception', + 'exceptions', + 'exception-table', + 'exclude', + 'excluding', + 'exec', + 'execute', + 'exists', + 'exit', + 'exit-command', + 'expand', + 'expanding', + 'expiration', + 'explicit', + 'exponent', + 'export', + 'exporting', + 'extend', + 'extended', + 'extension', + 'extract', + 'fail', + 'fetch', + 'field', + 'field-groups', + 'fields', + 'field-symbol', + 'field-symbols', + 'file', + 'filter', + 'filters', + 'filter-table', + 'final', + 'first', + 'first-line', + 'fixed-point', + 'fkeq', + 'fkge', + 'flush', + 'font', + 'for', + 'form', + 'format', + 'forward', + 'found', + 'frame', + 'frames', + 'free', + 'friends', + 'from', + 'function', + 'functionality', + 'function-pool', + 'further', + 'gaps', + 'generate', + 'get', + 'giving', + 'gkeq', + 'gkge', + 'global', + 'grant', + 'green', + 'group', + 'groups', + 'handle', + 'handler', + 'harmless', + 'hashed', + 'having', + 'hdb', + 'header', + 'headers', + 'heading', + 'head-lines', + 'help-id', + 'help-request', + 'hextobin', + 'hide', + 'high', + 'hint', + 'hold', + 'hotspot', + 'icon', + 'id', + 'identification', + 'identifier', + 'ids', + 'if', + 'ignore', + 'ignoring', + 'immediately', + 'implementation', + 'implementations', + 'implemented', + 'implicit', + 'import', + 'importing', + 'inactive', + 'incl', + 'include', + 'includes', + 'including', + 'increment', + 'index', + 'index-line', + 'infotypes', + 'inheriting', + 'init', + 'initial', + 'initialization', + 'inner', + 'inout', + 'input', + 'instance', + 'instances', + 'instr', + 'intensified', + 'interface', + 'interface-pool', + 'interfaces', + 'internal', + 'intervals', + 'into', + 'inverse', + 'inverted-date', + 'is', + 'iso', + 'job', + 'join', + 'keep', + 'keeping', + 'kernel', + 'key', + 'keys', + 'keywords', + 'kind', + 'language', + 'last', + 'late', + 'layout', + 'leading', + 'leave', + 'left', + 'left-justified', + 'leftplus', + 'leftspace', + 'legacy', + 'length', + 'let', + 'level', + 'levels', + 'like', + 'line', + 'line-count', + 'linefeed', + 'line-selection', + 'line-size', + 'list', + 'listbox', + 'list-processing', + 'little', + 'llang', + 'load', + 'load-of-program', + 'lob', + 'local', + 'locale', + 'locator', + 'logfile', + 'logical', + 'log-point', + 'long', + 'loop', + 'low', + 'lower', + 'lpad', + 'lpi', + 'ltrim', + 'mail', + 'main', + 'major-id', + 'mapping', + 'margin', + 'mark', + 'mask', + 'matchcode', + 'max', + 'maximum', + 'medium', + 'members', + 'memory', + 'mesh', + 'message', + 'message-id', + 'messages', + 'messaging', + 'method', + 'methods', + 'min', + 'minimum', + 'minor-id', + 'mm/dd/yy', + 'mm/dd/yyyy', + 'mmddyy', + 'mode', + 'modif', + 'modifier', + 'modify', + 'module', + 'move', + 'move-corresponding', + 'multiply', + 'multiply-corresponding', + 'name', + 'nametab', + 'native', + 'nested', + 'nesting', + 'new', + 'new-line', + 'new-page', + 'new-section', + 'next', + 'no', + 'node', + 'nodes', + 'no-display', + 'no-extension', + 'no-gap', + 'no-gaps', + 'no-grouping', + 'no-heading', + 'non-unicode', + 'non-unique', + 'no-scrolling', + 'no-sign', + 'no-title', + 'no-topofpage', + 'no-zero', + 'null', + 'number', + 'object', + 'objects', + 'obligatory', + 'occurrence', + 'occurrences', + 'occurs', + 'of', + 'off', + 'offset', + 'ole', + 'on', + 'only', + 'open', + 'option', + 'optional', + 'options', + 'order', + 'other', + 'others', + 'out', + 'outer', + 'output', + 'output-length', + 'overflow', + 'overlay', + 'pack', + 'package', + 'pad', + 'padding', + 'page', + 'pages', + 'parameter', + 'parameters', + 'parameter-table', + 'part', + 'partially', + 'pattern', + 'percentage', + 'perform', + 'performing', + 'person', + 'pf', + 'pf-status', + 'pink', + 'places', + 'pool', + 'pos_high', + 'pos_low', + 'position', + 'pragmas', + 'precompiled', + 'preferred', + 'preserving', + 'primary', + 'print', + 'print-control', + 'priority', + 'private', + 'procedure', + 'process', + 'program', + 'property', + 'protected', + 'provide', + 'public', + 'push', + 'pushbutton', + 'put', + 'queue-only', + 'quickinfo', + 'radiobutton', + 'raise', + 'raising', + 'range', + 'ranges', + 'read', + 'reader', + 'read-only', + 'receive', + 'received', + 'receiver', + 'receiving', + 'red', + 'redefinition', + 'reduce', + 'reduced', + 'ref', + 'reference', + 'refresh', + 'regex', + 'reject', + 'remote', + 'renaming', + 'replacement', + 'replacing', + 'report', + 'request', + 'requested', + 'reserve', + 'reset', + 'resolution', + 'respecting', + 'responsible', + 'result', + 'results', + 'resumable', + 'resume', + 'retry', + 'return', + 'returncode', + 'returning', + 'returns', + 'right', + 'right-justified', + 'rightplus', + 'rightspace', + 'risk', + 'rmc_communication_failure', + 'rmc_invalid_status', + 'rmc_system_failure', + 'role', + 'rollback', + 'rows', + 'rpad', + 'rtrim', + 'run', + 'sap', + 'sap-spool', + 'saving', + 'scale_preserving', + 'scale_preserving_scientific', + 'scan', + 'scientific', + 'scientific_with_leading_zero', + 'scroll', + 'scroll-boundary', + 'scrolling', + 'search', + 'secondary', + 'seconds', + 'section', + 'select', + 'selection', + 'selections', + 'selection-screen', + 'selection-set', + 'selection-sets', + 'selection-table', + 'select-options', + 'send', + 'separate', + 'separated', + 'set', + 'shared', + 'shift', + 'short', + 'shortdump-id', + 'sign_as_postfix', + 'single', + 'size', + 'skip', + 'skipping', + 'smart', + 'some', + 'sort', + 'sortable', + 'sorted', + 'source', + 'specified', + 'split', + 'spool', + 'spots', + 'sql', + 'sqlscript', + 'stable', + 'stamp', + 'standard', + 'starting', + 'start-of-editing', + 'start-of-selection', + 'state', + 'statement', + 'statements', + 'static', + 'statics', + 'statusinfo', + 'step-loop', + 'stop', + 'structure', + 'structures', + 'style', + 'subkey', + 'submatches', + 'submit', + 'subroutine', + 'subscreen', + 'subtract', + 'subtract-corresponding', + 'suffix', + 'sum', + 'summary', + 'summing', + 'supplied', + 'supply', + 'suppress', + 'switch', + 'switchstates', + 'symbol', + 'syncpoints', + 'syntax', + 'syntax-check', + 'syntax-trace', + 'system-call', + 'system-exceptions', + 'system-exit', + 'tab', + 'tabbed', + 'tables', + 'tableview', + 'tabstrip', + 'target', + 'task', + 'tasks', + 'test', + 'testing', + 'test-injection', + 'test-seam', + 'text', + 'textpool', + 'then', + 'throw', + 'time', + 'times', + 'timestamp', + 'timezone', + 'tims_is_valid', + 'title', + 'titlebar', + 'title-lines', + 'to', + 'tokenization', + 'tokens', + 'top-lines', + 'top-of-page', + 'trace-file', + 'trace-table', + 'trailing', + 'transaction', + 'transfer', + 'transformation', + 'transporting', + 'trmac', + 'truncate', + 'truncation', + 'try', + 'tstmp_add_seconds', + 'tstmp_current_utctimestamp', + 'tstmp_is_valid', + 'tstmp_seconds_between', + 'type', + 'type-pool', + 'type-pools', + 'types', + 'uline', + 'unassign', + 'under', + 'unicode', + 'union', + 'unique', + 'unit_conversion', + 'unix', + 'unpack', + 'until', + 'unwind', + 'up', + 'update', + 'upper', + 'user', + 'user-command', + 'using', + 'utf-8', + 'valid', + 'value', + 'value-request', + 'values', + 'vary', + 'varying', + 'verification-message', + 'version', + 'via', + 'view', + 'visible', + 'wait', + 'warning', + 'when', + 'whenever', + 'where', + 'while', + 'width', + 'window', + 'windows', + 'with', + 'with-heading', + 'without', + 'with-title', + 'word', + 'work', + 'write', + 'writer', + 'xml', + 'xsd', + 'yellow', + 'yes', + 'yymmdd', + 'zero', + 'zone', // built-ins - 'abs', - 'acos', - 'asin', - 'atan', - 'bit-set', - 'boolc', - 'boolx', - 'ceil', - 'char_off', - 'charlen', - 'cmax', - 'cmin', - 'concat_lines_of', - 'condense', - 'contains', - 'contains_any_not_of', - 'contains_any_of', - 'cos', - 'cosh', - 'count', - 'count_any_not_of', - 'count_any_of', - 'dbmaxlen', - 'distance', - 'escape', - 'exp', - 'find', - 'find_any_not_of', - 'find_any_of', - 'find_end', - 'floor', - 'frac', - 'from_mixed', - 'insert', - 'ipow', - 'line_exists', - 'line_index', - 'lines', - 'log', - 'log10', - 'match', - 'matches', - 'nmax', - 'nmin', - 'numofchar', - 'repeat', - 'replace', - 'rescale', - 'reverse', - 'round', - 'segment', - 'shift_left', - 'shift_right', - 'sign', - 'sin', - 'sinh', - 'sqrt', - 'strlen', - 'substring', - 'substring_after', - 'substring_before', - 'substring_from', - 'substring_to', - 'tan', - 'tanh', - 'to_lower', - 'to_mixed', - 'to_upper', - 'translate', - 'trunc', - 'utclong_add', // since 7.54 - 'utclong_current', // since 7.54 - 'utclong_diff', // since 7.54 - 'xsdbool', - 'xstrlen' + 'abs', + 'acos', + 'asin', + 'atan', + 'bit-set', + 'boolc', + 'boolx', + 'ceil', + 'char_off', + 'charlen', + 'cmax', + 'cmin', + 'concat_lines_of', + 'condense', + 'contains', + 'contains_any_not_of', + 'contains_any_of', + 'cos', + 'cosh', + 'count', + 'count_any_not_of', + 'count_any_of', + 'dbmaxlen', + 'distance', + 'escape', + 'exp', + 'find', + 'find_any_not_of', + 'find_any_of', + 'find_end', + 'floor', + 'frac', + 'from_mixed', + 'insert', + 'ipow', + 'line_exists', + 'line_index', + 'lines', + 'log', + 'log10', + 'match', + 'matches', + 'nmax', + 'nmin', + 'numofchar', + 'repeat', + 'replace', + 'rescale', + 'reverse', + 'round', + 'segment', + 'shift_left', + 'shift_right', + 'sign', + 'sin', + 'sinh', + 'sqrt', + 'strlen', + 'substring', + 'substring_after', + 'substring_before', + 'substring_from', + 'substring_to', + 'tan', + 'tanh', + 'to_lower', + 'to_mixed', + 'to_upper', + 'translate', + 'trunc', + 'utclong_add', // since 7.54 + 'utclong_current', // since 7.54 + 'utclong_diff', // since 7.54 + 'xsdbool', + 'xstrlen' ]; export const language = { @@ -1013,11 +1013,11 @@ export const language = { '**', 'div', 'mod', - // assignment operators + // assignment operators '=', '#', '@', - // concat operators + // concat operators '&', '&&', // bit operators From feeaa714aa09fa65693c5ea412a835ba4f0cba9b Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Tue, 22 Sep 2020 16:40:28 -0400 Subject: [PATCH 3/3] Fix operators and testcase --- src/abap/abap.test.ts | 2 +- src/abap/abap.ts | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/abap/abap.test.ts b/src/abap/abap.test.ts index 4318aa57..a0da5a41 100644 --- a/src/abap/abap.test.ts +++ b/src/abap/abap.test.ts @@ -121,7 +121,7 @@ testTokenization('abap', [ { startIndex: 6, type: '' }, { startIndex: 7, type: 'keyword.abap' }, { startIndex: 9, type: '' }, - { startIndex: 10, type: 'keyword.abap' }, + { startIndex: 10, type: 'operator.abap' }, { startIndex: 13, type: '' }, { startIndex: 14, type: 'keyword.abap' }, { startIndex: 21, type: 'delimiter.abap' } diff --git a/src/abap/abap.ts b/src/abap/abap.ts index 865edc00..04ecc1be 100644 --- a/src/abap/abap.ts +++ b/src/abap/abap.ts @@ -571,7 +571,21 @@ const abapKeywords = [ 'perform', 'performing', 'person', - 'pf', + 'pf1', + 'pf10', + 'pf11', + 'pf12', + 'pf13', + 'pf14', + 'pf15', + 'pf2', + 'pf3', + 'pf4', + 'pf5', + 'pf6', + 'pf7', + 'pf8', + 'pf9', 'pf-status', 'pink', 'places', @@ -1078,6 +1092,7 @@ export const language = { cases: { '@typeKeywords': 'keyword', '@keywords': 'keyword', + '@operators': 'operator', '@default': 'identifier' } } @@ -1090,6 +1105,7 @@ export const language = { [/[:,.]/, 'delimiter'], [/[{}()\[\]]/, '@brackets'], + [/@symbols/, { cases: { '@operators': 'operator', '@default': '' } }], [/'/, { token: 'string', bracket: '@open', next: '@stringquote' }],