blob: b2a1a0c85f400bc15f93ff918f2822b34dbd294e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar88a42052021-11-21 21:13:36 +00002" Language: indent(1) configuration file
3" Maintainer: Doug Kearns <dougkearns@gmail.com>
4" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
5" Last Change: 2021 Nov 17
Bram Moolenaar214641f2017-03-05 17:04:09 +01006" indent_is_bsd: If exists, will change somewhat to match BSD implementation
Bram Moolenaar42eeac32005-06-29 22:40:58 +00007"
Bram Moolenaar214641f2017-03-05 17:04:09 +01008" TODO: is the deny-all (a la lilo.vim nice or no?)...
Bram Moolenaar42eeac32005-06-29 22:40:58 +00009" irritating to be wrong to the last char...
10" would be sweet if right until one char fails
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
Bram Moolenaar42eeac32005-06-29 22:40:58 +000012if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000013 finish
14endif
15
Bram Moolenaar42eeac32005-06-29 22:40:58 +000016let s:cpo_save = &cpo
17set cpo&vim
18
Bram Moolenaar446cb832008-06-24 21:56:24 +000019setlocal iskeyword+=-,+
Bram Moolenaar42eeac32005-06-29 22:40:58 +000020
21syn match indentError '\S\+'
22
23syn keyword indentTodo contained TODO FIXME XXX NOTE
24
Bram Moolenaar0dc065e2005-07-04 22:49:24 +000025syn region indentComment start='/\*' end='\*/'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000026 \ contains=indentTodo,@Spell
Bram Moolenaar0dc065e2005-07-04 22:49:24 +000027syn region indentComment start='//' skip='\\$' end='$'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000028 \ contains=indentTodo,@Spell
29
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000030if !exists("indent_is_bsd")
Bram Moolenaar88a42052021-11-21 21:13:36 +000031 syn match indentOptions '-i\|--indent-level\|-il\|--indent-label'
Bram Moolenaare0d7b3c2007-05-12 14:23:41 +000032 \ nextgroup=indentNumber skipwhite skipempty
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000033endif
Bram Moolenaare0d7b3c2007-05-12 14:23:41 +000034syn match indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
35 \ nextgroup=indentNumber skipwhite skipempty
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000036
37syn match indentNumber display contained '\d\+\>'
38
39syn match indentOptions '-T'
Bram Moolenaare0d7b3c2007-05-12 14:23:41 +000040 \ nextgroup=indentIdent skipwhite skipempty
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000041
42syn match indentIdent display contained '\h\w*\>'
43
Bram Moolenaar42eeac32005-06-29 22:40:58 +000044syn keyword indentOptions -bacc --blank-lines-after-ifdefs
45 \ -bad --blank-lines-after-declarations
46 \ -badp --blank-lines-after-procedure-declarations
47 \ -bap --blank-lines-after-procedures
48 \ -bbb --blank-lines-before-block-comments
49 \ -bbo --break-before-boolean-operator
50 \ -bc --blank-lines-after-commas
51 \ -bfda --break-function-decl-args
52 \ -bfde --break-function-decl-args-end
53 \ -bl --braces-after-if-line
54 \ -blf --braces-after-func-def-line
55 \ -bls --braces-after-struct-decl-line
56 \ -br --braces-on-if-line
57 \ -brf --braces-on-func-def-line
58 \ -brs --braces-on-struct-decl-line
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000059 \ -bs --Bill-Shannon --blank-before-sizeof
Bram Moolenaar42eeac32005-06-29 22:40:58 +000060 \ -c++ --c-plus-plus
61 \ -cdb --comment-delimiters-on-blank-lines
62 \ -cdw --cuddle-do-while
63 \ -ce --cuddle-else
64 \ -cs --space-after-cast
65 \ -dj --left-justify-declarations
66 \ -eei --extra-expression-indentation
67 \ -fc1 --format-first-column-comments
68 \ -fca --format-all-comments
69 \ -gnu --gnu-style
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000070 \ -h --help --usage
Bram Moolenaar42eeac32005-06-29 22:40:58 +000071 \ -hnl --honour-newlines
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000072 \ -kr --k-and-r-style --kernighan-and-ritchie --kernighan-and-ritchie-style
Bram Moolenaar42eeac32005-06-29 22:40:58 +000073 \ -lp --continue-at-parentheses
74 \ -lps --leave-preprocessor-space
75 \ -nbacc --no-blank-lines-after-ifdefs
76 \ -nbad --no-blank-lines-after-declarations
77 \ -nbadp --no-blank-lines-after-procedure-declarations
78 \ -nbap --no-blank-lines-after-procedures
79 \ -nbbb --no-blank-lines-before-block-comments
80 \ -nbbo --break-after-boolean-operator
81 \ -nbc --no-blank-lines-after-commas
82 \ -nbfda --dont-break-function-decl-args
83 \ -nbfde --dont-break-function-decl-args-end
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000084 \ -nbs --no-Bill-Shannon --no-blank-before-sizeof
Bram Moolenaar42eeac32005-06-29 22:40:58 +000085 \ -ncdb --no-comment-delimiters-on-blank-lines
86 \ -ncdw --dont-cuddle-do-while
87 \ -nce --dont-cuddle-else
88 \ -ncs --no-space-after-casts
89 \ -ndj --dont-left-justify-declarations
90 \ -neei --no-extra-expression-indentation
91 \ -nfc1 --dont-format-first-column-comments
92 \ -nfca --dont-format-comments
93 \ -nhnl --ignore-newlines
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000094 \ -nip --dont-indent-parameters --no-parameter-indentation
Bram Moolenaar42eeac32005-06-29 22:40:58 +000095 \ -nlp --dont-line-up-parentheses
96 \ -nlps --remove-preprocessor-space
97 \ -npcs --no-space-after-function-call-names
Bram Moolenaar2c7a7632007-05-10 18:19:11 +000098 \ -npmt
Bram Moolenaar42eeac32005-06-29 22:40:58 +000099 \ -npro --ignore-profile
100 \ -nprs --no-space-after-parentheses
101 \ -npsl --dont-break-procedure-type
102 \ -nsaf --no-space-after-for
103 \ -nsai --no-space-after-if
104 \ -nsaw --no-space-after-while
105 \ -nsc --dont-star-comments
106 \ -nsob --leave-optional-blank-lines
107 \ -nss --dont-space-special-semicolon
108 \ -nut --no-tabs
109 \ -nv --no-verbosity
110 \ -o --output
111 \ -o --output-file
Bram Moolenaar2c7a7632007-05-10 18:19:11 +0000112 \ -orig --berkeley --berkeley-style --original --original-style
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000113 \ -pcs --space-after-procedure-calls
114 \ -pmt --preserve-mtime
115 \ -prs --space-after-parentheses
116 \ -psl --procnames-start-lines
117 \ -saf --space-after-for
118 \ -sai --space-after-if
119 \ -saw --space-after-while
120 \ -sc --start-left-side-of-comments
121 \ -sob --swallow-optional-blank-lines
122 \ -ss --space-special-semicolon
123 \ -st --standard-output
124 \ -ut --use-tabs
125 \ -v --verbose
126 \ -version --version
Bram Moolenaar6dfc28b2010-02-11 14:19:15 +0100127 \ -linux --linux-style
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000128
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000129if exists("indent_is_bsd")
Bram Moolenaare0d7b3c2007-05-12 14:23:41 +0000130 syn keyword indentOptions -ip -ei -nei
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000133if exists("c_minlines")
134 let b:c_minlines = c_minlines
135else
136 if !exists("c_no_if0")
137 let b:c_minlines = 50 " #if 0 constructs can be long
Bram Moolenaar071d4272004-06-13 20:20:40 +0000138 else
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000139 let b:c_minlines = 15 " mostly for () constructs
Bram Moolenaar071d4272004-06-13 20:20:40 +0000140 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000141endif
142
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000143hi def link indentError Error
144hi def link indentComment Comment
145hi def link indentTodo Todo
146hi def link indentOptions Keyword
147hi def link indentNumber Number
148hi def link indentIdent Identifier
149
Bram Moolenaar071d4272004-06-13 20:20:40 +0000150let b:current_syntax = "indent"
151
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000152let &cpo = s:cpo_save
153unlet s:cpo_save