blob: d51e7bdfa983c429931976060fcb9a0edaa5c608 [file] [log] [blame]
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02001" Vim syntax file
2" Language: APT config file
3" Maintainer: Yann Amar <quidame@poivron.org>
Bram Moolenaar53f7fcc2021-07-28 20:10:16 +02004" Last Change: 2021 Jul 12
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02005
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02006" quit when a syntax file was already loaded
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02007if !exists("main_syntax")
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02008 if exists("b:current_syntax")
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02009 finish
10 endif
11 let main_syntax = 'aptconf'
12endif
13
14let s:cpo_save = &cpo
15set cpo&vim
16
17" Errors:
18" Catch all that is not overridden by next rules/items:
19syn match aptconfError display '[^[:blank:]]'
20syn match aptconfError display '^[^[:blank:]][^:{]*'
21
22" Options:
23" Define a general regular expression for the options that are not defined
24" later as keywords. Following apt.conf(5), we know that options are case
25" insensitive, and can contain alphanumeric characters and '/-:._+'; we
26" assume that there can not be consecutive colons (::) which is used as
27" syntax operator; we also assume that an option name can not start or end
28" by a colon.
29syn case ignore
30syn match aptconfRegexpOpt '[-[:alnum:]/.+_]\+\(:[-[:alnum:]/.+_]\+\)*' contained display
31
32" Keywords:
33setlocal iskeyword+=/,-,.,_,+
34"setlocal iskeyword+=: is problematic, because of the '::' separator
35
36" Incomplete keywords will be treated differently than completely bad strings:
37syn keyword aptconfGroupIncomplete
Bram Moolenaar345efa02016-01-15 20:57:49 +010038 \ a[cquire] a[dequate] a[ptitude] a[ptlistbugs] d[ebtags] d[ebug]
39 \ d[ir] d[pkg] d[select] o[rderlist] p[ackagemanager] p[kgcachegen]
40 \ q[uiet] r[pm] s[ynaptic] u[nattended-upgrade] w[hatmaps]
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020041
42" Only the following keywords can be used at toplevel (to begin an option):
43syn keyword aptconfGroup
Bram Moolenaar345efa02016-01-15 20:57:49 +010044 \ acquire adequate apt aptitude aptlistbugs debtags debug
45 \ dir dpkg dselect orderlist packagemanager pkgcachegen
46 \ quiet rpm synaptic unattended-upgrade whatmaps
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020047
48" Possible options for each group:
49" Acquire: {{{
50syn keyword aptconfAcquire contained
Bram Moolenaar345efa02016-01-15 20:57:49 +010051 \ cdrom Check-Valid-Until CompressionTypes ForceHash ForceIPv4
52 \ ForceIPv6 ftp gpgv GzipIndexes http https Languages Max-ValidTime
53 \ Min-ValidTime PDiffs Queue-Mode Retries Source-Symlinks
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020054
55syn keyword aptconfAcquireCDROM contained
56 \ AutoDetect CdromOnly Mount UMount
57
58syn keyword aptconfAcquireCompressionTypes contained
59 \ bz2 lzma gz Order
60
61syn keyword aptconfAcquireFTP contained
Bram Moolenaar345efa02016-01-15 20:57:49 +010062 \ ForceExtended Passive Proxy ProxyLogin Timeout
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020063
64syn keyword aptconfAcquireHTTP contained
65 \ AllowRedirect Dl-Limit Max-Age No-Cache No-Store Pipeline-Depth
Bram Moolenaar345efa02016-01-15 20:57:49 +010066 \ Proxy ProxyAutoDetect Proxy-Auto-Detect Timeout User-Agent
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020067
68syn keyword aptconfAcquireHTTPS contained
Bram Moolenaar345efa02016-01-15 20:57:49 +010069 \ AllowRedirect CaInfo CaPath CrlFile Dl-Limit IssuerCert Max-Age
70 \ No-Cache No-Store Proxy SslCert SslForceVersion SslKey Timeout
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020071 \ Verify-Host Verify-Peer
72
73syn keyword aptconfAcquireMaxValidTime contained
74 \ Debian Debian-Security
75
76syn keyword aptconfAcquirePDiffs contained
77 \ FileLimit SizeLimit
78
79syn cluster aptconfAcquire_ contains=aptconfAcquire,
80 \ aptconfAcquireCDROM,aptconfAcquireCompressionTypes,aptconfAcquireFTP,
81 \ aptconfAcquireHTTP,aptconfAcquireHTTPS,aptconfAcquireMaxValidTime,
82 \ aptconfAcquirePDiffs
83" }}}
Bram Moolenaar345efa02016-01-15 20:57:49 +010084" Adequate: {{{
85syn keyword aptconfAdequate contained
86 \ Enabled
87
88syn cluster aptconfAdequate_ contains=aptconfAdequate
89" }}}
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020090" Apt: {{{
91syn keyword aptconfApt contained
92 \ Architecture Architectures Archive Authentication AutoRemove
Bram Moolenaar345efa02016-01-15 20:57:49 +010093 \ Build-Essential Build-Profiles Cache Cache-Grow Cache-Limit
94 \ Cache-Start CDROM Changelogs Clean-Installed Compressor
95 \ Default-Release Force-LoopBreak Get Ignore-Hold Immediate-Configure
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020096 \ Install-Recommends Install-Suggests Keep-Fds List-Cleanup
Bram Moolenaar345efa02016-01-15 20:57:49 +010097 \ Move-Autobit-Sections NeverAutoRemove Never-MarkAuto-Sections
98 \ Periodic Status-Fd Update VersionedKernelPackages
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020099
100syn keyword aptconfAptAuthentication contained
101 \ TrustCDROM
102
103syn keyword aptconfAptAutoRemove contained
104 \ RecommendsImportant SuggestsImportant
105
106syn keyword aptconfAptCache contained
107 \ AllNames AllVersions Generate GivenOnly Important Installed NamesOnly
108 \ RecurseDepends ShowFull
109
110syn keyword aptconfAptCDROM contained
111 \ Fast NoAct NoMount Rename
112
113syn keyword aptconfAptChangelogs contained
114 \ Server
115
116syn keyword aptconfAptCompressor contained
117 \ bzip2 gzip lzma xz
118
119syn keyword aptconfAptCompressorAll contained
120 \ Binary CompressArg Cost Extension Name UncompressArg
121
122syn keyword aptconfAptGet contained
123 \ AllowUnauthenticated Arch-Only Assume-No Assume-Yes AutomaticRemove
124 \ Build-Dep-Automatic Compile Diff-Only Download Download-Only Dsc-Only
125 \ Fix-Broken Fix-Missing Force-Yes HideAutoRemove Host-Architecture
126 \ List-Cleanup Only-Source Print-URIs Purge ReInstall Remove
127 \ Show-Upgraded Show-User-Simulation-Note Show-Versions Simulate
128 \ Tar-Only Trivial-Only Upgrade
129
130syn keyword aptconfAptPeriodic contained
131 \ AutocleanInterval BackupArchiveInterval BackupLevel
Bram Moolenaar345efa02016-01-15 20:57:49 +0100132 \ Download-Upgradeable-Packages Download-Upgradeable-Packages-Debdelta
133 \ Enable MaxAge MaxSize MinAge Unattended-Upgrade Update-Package-Lists
134 \ Verbose
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200135
136syn keyword aptconfAptUpdate contained
Bram Moolenaar345efa02016-01-15 20:57:49 +0100137 \ List-Refresh Pre-Invoke Post-Invoke Post-Invoke-Success
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200138
139syn cluster aptconfApt_ contains=aptconfApt,
140 \ aptconfAptAuthentication,aptconfAptAutoRemove,aptconfAptCache,
141 \ aptconfAptCDROM,aptconfAptChangelogs,aptconfAptCompressor,
142 \ aptconfAptCompressorAll,aptconfAptGet,aptconfAptPeriodic,
143 \ aptconfAptUpdate
144" }}}
145" Aptitude: {{{
146syn keyword aptconfAptitude contained
147 \ Allow-Null-Upgrade Always-Use-Safe-Resolver Autoclean-After-Update
148 \ Auto-Install Auto-Fix-Broken Cmdline Debtags-Binary
149 \ Debtags-Update-Options Delete-Unused Delete-Unused-Pattern
150 \ Display-Planned-Action Forget-New-On-Install Forget-New-On-Update
151 \ Get-Root-Command Ignore-Old-Tmp Ignore-Recommends-Important
152 \ Keep-Recommends Keep-Suggests Keep-Unused-Pattern LockFile Log
153 \ Logging Parse-Description-Bullets Pkg-Display-Limit ProblemResolver
154 \ Purge-Unused Recommends-Important Safe-Resolver Screenshot Sections
155 \ Simulate Spin-Interval Suggests-Important Suppress-Read-Only-Warning
156 \ Theme Track-Dselect-State UI Warn-Not-Root
157
158syn keyword aptconfAptitudeCmdline contained
159 \ Always-Prompt Assume-Yes Disable-Columns Download-Only Fix-Broken
160 \ Ignore-Trust-Violations Package-Display-Format Package-Display-Width
161 \ Progress Request-Strictness Resolver-Debug Resolver-Dump
162 \ Resolver-Show-Steps Safe-Upgrade Show-Deps Show-Size-Changes
163 \ Show-Versions Show-Why Simulate Verbose Version-Display-Format
164 \ Versions-Group-By Versions-Show-Package-Names Visual-Preview
165 \ Why-Display-Mode
166
167syn keyword aptconfAptitudeCmdlineProgress contained
168 \ Percent-On-Right Retain-Completed
169
170syn keyword aptconfAptitudeCmdlineSafeUpgrade contained
171 \ No-New-Installs
172
173syn keyword aptconfAptitudeLogging contained
174 \ File Levels
175
176syn keyword aptconfAptitudeProblemResolver contained
177 \ Allow-Break-Holds BreakHoldScore Break-Hold-Level BrokenScore
178 \ DefaultResolutionScore Discard-Null-Solution
179 \ EssentialRemoveScore ExtraScore FullReplacementScore FutureHorizon
180 \ Hints ImportantScore Infinity InstallScore Keep-All-Level KeepScore
181 \ NonDefaultScore Non-Default-Level OptionalScore PreserveAutoScore
182 \ PreserveManualScore RemoveScore Remove-Essential-Level Remove-Level
183 \ RequiredScore ResolutionScore Safe-Level SolutionCost StandardScore
184 \ StepLimit StepScore Trace-Directory Trace-File
185 \ UndoFullReplacementScore UnfixedSoftScore UpgradeScore
186
187syn keyword aptconfAptitudeSafeResolver contained
188 \ No-New-Installs No-New-Upgrades Show-Resolver-Actions
189
190syn keyword aptconfAptitudeScreenshot contained
191 \ Cache-Max IncrementalLoadLimit
192
193syn keyword aptconfAptitudeSections contained
194 \ Descriptions Top-Sections
195
196syn keyword aptconfAptitudeUI contained
197 \ Advance-On-Action Auto-Show-Reasons Default-Grouping
198 \ Default-Package-View Default-Preview-Grouping Default-Sorting
199 \ Description-Visible-By-Default Exit-On-Last-Close Fill-Text
200 \ Flat-View-As-First-View HelpBar Incremental-Search InfoAreaTabs
201 \ KeyBindings MenuBar-Autohide Minibuf-Download-Bar Minibuf-Prompts
202 \ New-package-Commands Package-Display-Format Package-Header-Format
203 \ Package-Status-Format Pause-After-Download Preview-Limit
204 \ Prompt-On-Exit Styles ViewTabs
205
Bram Moolenaarff034192013-04-24 18:51:19 +0200206syn keyword aptconfAptitudeUIKeyBindings contained
207 \ ApplySolution Begin BugReport Cancel Changelog ChangePkgTreeGrouping
208 \ ChangePkgTreeLimit ChangePkgTreeSorting ClearAuto CollapseAll
209 \ CollapseTree Commit Confirm Cycle CycleNext CycleOrder CyclePrev
210 \ DelBOL DelBack DelEOL DelForward Dependencies DescriptionCycle
211 \ DescriptionDown DescriptionUp DoInstallRun Down DpkgReconfigure
212 \ DumpResolver EditHier End ExamineSolution ExpandAll ExpandTree
213 \ FirstSolution ForbidUpgrade ForgetNewPackages Help HistoryNext
214 \ HistoryPrev Hold Install InstallSingle Keep LastSolution Left
215 \ LevelDown LevelUp MarkUpgradable MineFlagSquare MineLoadGame
216 \ MineSaveGame MineSweepSquare MineUncoverSquare MineUncoverSweepSquare
217 \ NextPage NextSolution No Parent PrevPage PrevSolution Purge
218 \ PushButton Quit QuitProgram RejectBreakHolds Refresh Remove
219 \ ReInstall RepeatSearchBack ReSearch ReverseDependencies Right
220 \ SaveHier Search SearchBack SearchBroken SetAuto ShowHideDescription
221 \ SolutionActionApprove SolutionActionReject ToggleExpanded
222 \ ToggleMenuActive Undo Up UpdatePackageList Versions Yes
223
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200224syn keyword aptconfAptitudeUIStyles contained
225 \ Bullet ChangeLogNewerVersion Default DepBroken DisabledMenuEntry
226 \ DownloadHit DownloadProgress EditLine Error Header HighlightedMenuBar
227 \ HighlightedMenuEntry MediaChange MenuBar MenuBorder MenuEntry
228 \ MineBomb MineBorder MineFlag MineNumber1 MineNumber2 MineNumber3
229 \ MineNumber4 MineNumber5 MineNumber6 MineNumber7 MineNumber8
230 \ MultiplexTab MultiplexTabHighlighted PkgBroken PkgBrokenHighlighted
231 \ PkgIsInstalled PkgIsInstalledHighlighted PkgNotInstalled
232 \ PkgNotInstalledHighlighted PkgToDowngrade PkgToDowngradeHighlighted
233 \ PkgToHold PkgToHoldHighlighted PkgToInstall PkgToInstallHighlighted
234 \ PkgToRemove PkgToRemoveHighlighted PkgToUpgrade
235 \ PkgToUpgradeHighlighted Progress SolutionActionApproved
236 \ SolutionActionRejected Status TreeBackground TrustWarning
237
238syn keyword aptconfAptitudeUIStylesElements contained
239 \ bg clear fg flip set
240
241syn cluster aptconfAptitude_ contains=aptconfAptitude,
242 \ aptconfAptitudeCmdline,aptconfAptitudeCmdlineProgress,
243 \ aptconfAptitudeCmdlineSafeUpgrade,aptconfAptitudeLogging,
244 \ aptconfAptitudeProblemResolver,aptconfAptitudeSafeResolver,
245 \ aptconfAptitudeScreenshot,aptconfAptitudeSections,aptconfAptitudeUI,
Bram Moolenaarff034192013-04-24 18:51:19 +0200246 \ aptconfAptitudeUIKeyBindings,aptconfAptitudeUIStyles,
247 \ aptconfAptitudeUIStylesElements
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200248" }}}
Bram Moolenaar345efa02016-01-15 20:57:49 +0100249" AptListbugs: {{{
250syn keyword aptconfAptListbugs contained
251 \ IgnoreRegexp Severities
252
253syn cluster aptconfAptListbugs_ contains=aptconfAptListbugs
254" }}}
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200255" DebTags: {{{
256syn keyword aptconfDebTags contained
257 \ Vocabulary
258
259syn cluster aptconfDebTags_ contains=aptconfDebTags
260" }}}
261" Debug: {{{
262syn keyword aptconfDebug contained
263 \ Acquire aptcdrom BuildDeps Hashes IdentCdrom Nolocking
264 \ pkgAcquire pkgAutoRemove pkgCacheGen pkgDepCache pkgDPkgPM
265 \ pkgDPkgProgressReporting pkgInitialize pkgOrderList
Bram Moolenaar345efa02016-01-15 20:57:49 +0100266 \ pkgPackageManager pkgPolicy pkgProblemResolver RunScripts
267 \ sourceList
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200268
269syn keyword aptconfDebugAcquire contained
270 \ cdrom Ftp gpgv Http Https netrc
271
272syn keyword aptconfDebugPkgAcquire contained
273 \ Auth Diffs RRed Worker
274
275syn keyword aptconfDebugPkgDepCache contained
276 \ AutoInstall Marker
277
278syn keyword aptconfDebugPkgProblemResolver contained
279 \ ShowScores
280
281syn cluster aptconfDebug_ contains=aptconfDebug,
282 \ aptconfDebugAcquire,aptconfDebugPkgAcquire,aptconfDebugPkgDepCache,
283 \ aptconfDebugPkgProblemResolver
284" }}}
285" Dir: {{{
286syn keyword aptconfDir contained
287 \ Aptitude Bin Cache Etc Ignore-Files-Silently Log Media Parts RootDir
288 \ State
289
290syn keyword aptconfDirAptitude contained
291 \ state
292
293syn keyword aptconfDirBin contained
294 \ apt-get apt-cache dpkg dpkg-buildpackage dpkg-source gpg gzip Methods
295 \ solvers
296
297syn keyword aptconfDirCache contained
298 \ Archives Backup pkgcache srcpkgcache
299
300syn keyword aptconfDirEtc contained
301 \ Main Netrc Parts Preferences PreferencesParts SourceList SourceParts
302 \ VendorList VendorParts Trusted TrustedParts
303
304syn keyword aptconfDirLog contained
305 \ History Terminal
306
307syn keyword aptconfDirMedia contained
308 \ MountPath
309
310syn keyword aptconfDirState contained
Bram Moolenaar345efa02016-01-15 20:57:49 +0100311 \ cdroms extended_states Lists mirrors preferences status
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200312
313syn cluster aptconfDir_ contains=aptconfDir,
314 \ aptconfDirAptitude,aptconfDirBin,aptconfDirCache,aptconfDirEtc,
315 \ aptconfDirLog,aptconfDirMedia,aptconfDirState
316" }}}
317" DPkg: {{{
318syn keyword aptconfDPkg contained
Bram Moolenaar345efa02016-01-15 20:57:49 +0100319 \ Build-Options Chroot-Directory ConfigurePending FlushSTDIN
320 \ MaxArgBytes MaxArgs MaxBytes NoTriggers options
321 \ Pre-Install-Pkgs Pre-Invoke Post-Invoke
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200322 \ Run-Directory StopOnError Tools TriggersPending
323
324syn keyword aptconfDPkgTools contained
Bram Moolenaar345efa02016-01-15 20:57:49 +0100325 \ adequate InfoFD Options Version
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200326
327syn cluster aptconfDPkg_ contains=aptconfDPkg,
Bram Moolenaar345efa02016-01-15 20:57:49 +0100328 \ aptconfDPkgTools
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200329" }}}
330" DSelect: {{{
331syn keyword aptconfDSelect contained
332 \ CheckDir Clean Options PromptAfterUpdate UpdateOptions
333
334syn cluster aptconfDSelect_ contains=aptconfDSelect
335" }}}
336" OrderList: {{{
337syn keyword aptconfOrderList contained
338 \ Score
339
340syn keyword aptconfOrderListScore contained
341 \ Delete Essential Immediate PreDepends
342
343syn cluster aptconfOrderList_ contains=aptconfOrderList,
344 \ aptconfOrderListScore
345" }}}
346" PackageManager: {{{
347syn keyword aptconfPackageManager contained
348 \ Configure
349
350syn cluster aptconfPackageManager_ contains=aptconfPackageManager
351" }}}
352" PkgCacheGen: {{{
353syn keyword aptconfPkgCacheGen contained
354 \ Essential
355
356syn cluster aptconfPkgCacheGen_ contains=aptconfPkgCacheGen
357" }}}
358" Quiet: {{{
359syn keyword aptconfQuiet contained
360 \ NoUpdate
361
362syn cluster aptconfQuiet_ contains=aptconfQuiet
363" }}}
364" Rpm: {{{
365syn keyword aptconfRpm contained
366 \ Post-Invoke Pre-Invoke
367
368syn cluster aptconfRpm_ contains=aptconfRpm
369" }}}
Bram Moolenaar345efa02016-01-15 20:57:49 +0100370" Synaptic: {{{
371syn keyword aptconfSynaptic contained
372 \ AskQuitOnProceed AskRelated AutoCleanCache CleanCache DefaultDistro
373 \ delAction delHistory Download-Only ftpProxy ftpProxyPort httpProxy
374 \ httpProxyPort Install-Recommends LastSearchType Maximized noProxy
375 \ OneClickOnStatusActions ShowAllPkgInfoInMain showWelcomeDialog
376 \ ToolbarState undoStackSize update upgradeType useProxy UseStatusColors
377 \ UseTerminal useUserFont useUserTerminalFont ViewMode
378 \ availVerColumnPos availVerColumnVisible componentColumnPos
379 \ componentColumnVisible descrColumnPos descrColumnVisible
380 \ downloadSizeColumnPos downloadSizeColumnVisible hpanedPos
381 \ instVerColumnPos instVerColumnVisible instSizeColumnPos
382 \ instSizeColumnVisible nameColumnPos nameColumnVisible
383 \ sectionColumnPos sectionColumnVisible statusColumnPos
384 \ statusColumnVisible supportedColumnPos supportedColumnVisible
385 \ vpanedPos windowWidth windowHeight windowX windowY closeZvt
386 \ color-available color-available-locked color-broken color-downgrade
387 \ color-install color-installed-locked color-installed-outdated
388 \ color-installed-updated color-new color-purge color-reinstall
389 \ color-remove color-upgrade
390
391syn keyword aptconfSynapticUpdate contained
392 \ last type
393
394syn cluster aptconfSynaptic_ contains=aptconfSynaptic,
395 \ aptconfSynapticUpdate
396" }}}
397" Unattended Upgrade: {{{
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200398syn keyword aptconfUnattendedUpgrade contained
Bram Moolenaar53f7fcc2021-07-28 20:10:16 +0200399 \ Allow-APT-Mark-Fallback Allow-downgrade AutoFixInterruptedDpkg
400 \ Automatic-Reboot Automatic-Reboot-Time Automatic-Reboot-WithUsers
401 \ Debug InstallOnShutdown Mail MailOnlyOnError MailReport MinimalSteps
402 \ OnlyOnACPower Origins-Pattern Package-Blacklist
403 \ Remove-New-Unused-Dependencies Remove-Unused-Dependencies
404 \ Remove-Unused-Kernel-Packages Skip-Updates-On-Metered-Connections
405 \ SyslogEnable SyslogFacility Verbose
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200406
407syn cluster aptconfUnattendedUpgrade_ contains=aptconfUnattendedUpgrade
408" }}}
Bram Moolenaar345efa02016-01-15 20:57:49 +0100409" Whatmaps: {{{
410syn keyword aptconfWhatmaps contained
411 \ Enable-Restart Security-Update-Origins
412
413syn cluster aptconfWhatmaps_ contains=aptconfWhatmaps
414" }}}
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200415
416syn case match
417
418" Now put all the keywords (and 'valid' options) in a single cluster:
419syn cluster aptconfOptions contains=aptconfRegexpOpt,
Bram Moolenaar345efa02016-01-15 20:57:49 +0100420 \ @aptconfAcquire_,@aptconfAdequate_,@aptconfApt_,@aptconfAptitude_,
421 \ @aptconfAptListbugs_,@aptconfDebTags_,@aptconfDebug_,@aptconfDir_,
422 \ @aptconfDPkg_,@aptconfDSelect_,@aptconfOrderList_,
423 \ @aptconfPackageManager_,@aptconfPkgCacheGen_,@aptconfQuiet_,
424 \ @aptconfRpm_,@aptconfSynaptic_,@aptconfUnattendedUpgrade_,
425 \ @aptconfWhatmaps_
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200426
427" Syntax:
428syn match aptconfSemiColon ';'
429syn match aptconfDoubleColon '::'
430syn match aptconfCurlyBraces '[{}]'
431syn region aptconfValue start='"' end='"' oneline display
432syn region aptconfInclude matchgroup=aptconfOperator start='{' end='}' contains=ALLBUT,aptconfGroup,aptconfGroupIncomplete,@aptconfCommentSpecial
433syn region aptconfInclude matchgroup=aptconfOperator start='::' end='{'me=s-1 contains=@aptconfOptions,aptconfError display
434syn region aptconfInclude matchgroup=aptconfOperator start='::' end='::\|\s'me=s-1 oneline contains=@aptconfOptions,aptconfError display
435
436" Basic Syntax Errors: XXX avoid to generate false positives !!!
437"
Bram Moolenaar345efa02016-01-15 20:57:49 +0100438" * Undocumented inline comment. Since it is currently largely used, and does
439" not seem to cause trouble ('apt-config dump' never complains when # is used
440" the same way than //) it has been moved to aptconfComment group. But it
441" still needs to be defined here (i.e. before #clear and #include directives)
442syn match aptconfComment '#.*' contains=@aptconfCommentSpecial
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200443"
444" * When a semicolon is missing after a double-quoted string:
445" There are some cases (for example in the Dir group of options, but not only)
446" where this syntax is valid. So we don't treat it as a strict error.
447syn match aptconfAsError display '"[^"]*"[^;]'me=e-1
448syn match aptconfAsError display '"[^"]*"$'
449"
450" * When double quotes are missing around a value (before a semicolon):
451" This omission has no effect if the value is a single string (without blank
452" characters). But apt.conf(5) says that quotes are required, and this item
453" avoids to match unquoted keywords.
454syn match aptconfAsError display '\s[^"[:blank:]]*[^}"];'me=e-1
455"
456" * When only one double quote is missing around a value (before a semicolon):
457" No comment for that: it must be highly visible.
458syn match aptconfError display '\(\s\|;\)"[^"[:blank:]]\+;'me=e-1
459syn match aptconfError display '\(\s\|;\)[^"[:blank:]]\+";'me=e-1
460"
461" * When space is missing between option and (quoted) value:
462" TODO (partially implemented)
463syn match aptconfError display '::[^[:blank:]]*"'
464
465" Special Actions:
466syn match aptconfAction '^#\(clear\|include\)\>'
467syn region aptconfAction matchgroup=aptconfAction start='^#clear\>' end=';'me=s-1 oneline contains=aptconfGroup,aptconfDoubleColon,@aptconfOptions
468syn region aptconfAction matchgroup=aptconfAction start='^#include\>' end=';'me=s-1 oneline contains=aptconfRegexpOpt
469
470" Comments:
471syn keyword aptconfTodo TODO FIXME NOTE XXX contained
472syn cluster aptconfCommentSpecial contains=@Spell,aptconfTodo
473syn match aptconfComment '//.*' contains=@aptconfCommentSpecial
474syn region aptconfComment start='/\*' end='\*/' contains=@aptconfCommentSpecial
475
476" Highlight Definitions:
477hi def link aptconfTodo Todo
478hi def link aptconfError Error
479hi def link aptconfComment Comment
480hi def link aptconfOperator Operator
481
482hi def link aptconfAction PreProc
483hi def link aptconfOption Type
484hi def link aptconfValue String
485hi def link aptconfRegexpOpt Normal
486hi def link aptconfAsError Special
487
488hi def link aptconfSemiColon aptconfOperator
489hi def link aptconfDoubleColon aptconfOperator
490hi def link aptconfCurlyBraces aptconfOperator
491
492hi def link aptconfGroupIncomplete Special
493hi def link aptconfGroup aptconfOption
494
495hi def link aptconfAcquire aptconfOption
496hi def link aptconfAcquireCDROM aptconfOption
497hi def link aptconfAcquireCompressionTypes aptconfOption
498hi def link aptconfAcquireFTP aptconfOption
499hi def link aptconfAcquireHTTP aptconfOption
500hi def link aptconfAcquireHTTPS aptconfOption
501hi def link aptconfAcquireMaxValidTime aptconfOption
502hi def link aptconfAcquirePDiffs aptconfOption
503
Bram Moolenaar345efa02016-01-15 20:57:49 +0100504hi def link aptconfAdequate aptconfOption
505
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200506hi def link aptconfApt aptconfOption
507hi def link aptconfAptAuthentication aptconfOption
508hi def link aptconfAptAutoRemove aptconfOption
509hi def link aptconfAptCache aptconfOption
510hi def link aptconfAptCDROM aptconfOption
511hi def link aptconfAptChangelogs aptconfOption
512hi def link aptconfAptCompressor aptconfOption
513hi def link aptconfAptCompressorAll aptconfOption
514hi def link aptconfAptGet aptconfOption
515hi def link aptconfAptPeriodic aptconfOption
516hi def link aptconfAptUpdate aptconfOption
517
518hi def link aptconfAptitude aptconfOption
519hi def link aptconfAptitudeCmdline aptconfOption
520hi def link aptconfAptitudeCmdlineProgress aptconfOption
521hi def link aptconfAptitudeCmdlineSafeUpgrade aptconfOption
522hi def link aptconfAptitudeLogging aptconfOption
523hi def link aptconfAptitudeProblemResolver aptconfOption
524hi def link aptconfAptitudeSafeResolver aptconfOption
525hi def link aptconfAptitudeScreenshot aptconfOption
526hi def link aptconfAptitudeSections aptconfOption
527hi def link aptconfAptitudeUI aptconfOption
Bram Moolenaarff034192013-04-24 18:51:19 +0200528hi def link aptconfAptitudeUIKeyBindings aptconfOption
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200529hi def link aptconfAptitudeUIStyles aptconfOption
530hi def link aptconfAptitudeUIStylesElements aptconfOption
531
Bram Moolenaar345efa02016-01-15 20:57:49 +0100532hi def link aptconfAptListbugs aptconfOption
533
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200534hi def link aptconfDebTags aptconfOption
535
536hi def link aptconfDebug aptconfOption
537hi def link aptconfDebugAcquire aptconfOption
538hi def link aptconfDebugPkgAcquire aptconfOption
539hi def link aptconfDebugPkgDepCache aptconfOption
540hi def link aptconfDebugPkgProblemResolver aptconfOption
541
542hi def link aptconfDir aptconfOption
543hi def link aptconfDirAptitude aptconfOption
544hi def link aptconfDirBin aptconfOption
545hi def link aptconfDirCache aptconfOption
546hi def link aptconfDirEtc aptconfOption
547hi def link aptconfDirLog aptconfOption
548hi def link aptconfDirMedia aptconfOption
549hi def link aptconfDirState aptconfOption
550
551hi def link aptconfDPkg aptconfOption
552hi def link aptconfDPkgTools aptconfOption
553
554hi def link aptconfDSelect aptconfOption
555
556hi def link aptconfOrderList aptconfOption
557hi def link aptconfOrderListScore aptconfOption
558
559hi def link aptconfPackageManager aptconfOption
560
561hi def link aptconfPkgCacheGen aptconfOption
562
563hi def link aptconfQuiet aptconfOption
564
565hi def link aptconfRpm aptconfOption
566
Bram Moolenaar345efa02016-01-15 20:57:49 +0100567hi def link aptconfSynaptic aptconfOption
568hi def link aptconfSynapticUpdate aptconfOption
569
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200570hi def link aptconfUnattendedUpgrade aptconfOption
571
Bram Moolenaar345efa02016-01-15 20:57:49 +0100572hi def link aptconfWhatmaps aptconfOption
573
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200574let b:current_syntax = "aptconf"
575
576let &cpo = s:cpo_save
577unlet s:cpo_save