summaryrefslogtreecommitdiffstats
path: root/syntax/outline.vim
blob: 13a4d7ea5a20a78363e303b2d6d62d207a6815f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
if polyglot#init#is_disabled(expand('<sfile>:p'), 'org', 'syntax/outline.vim')
  finish
endif

" Vim syntax file for GNU Emacs' Outline mode
"
" Maintainer:   Alex Vear <alex@vear.uk>
" License:      Vim (see `:help license`)
" Location:     syntax/outline.vim
" Website:      https://github.com/axvr/org.vim
" Last Change:  2020-08-24
"
" Reference Specification: GNU Emacs Manual, section 'Outline Mode'
"   GNU Info: `$ info Emacs Outline Mode`
"   Web: <https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html>

if exists('b:current_syntax')
    finish
endif

" Enable spell check for non syntax highlighted text
syntax spell toplevel


" Headings
syntax match outlineHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell

syntax cluster outlineHeadingGroup contains=outlineHeading1,outlineHeading2,outlineHeading3,outlineHeading4,outlineHeading5,outlineHeading6

hi def link outlineHeading1 Title
hi def link outlineHeading2 outlineHeading1
hi def link outlineHeading3 outlineHeading2
hi def link outlineHeading4 outlineHeading3
hi def link outlineHeading5 outlineHeading4
hi def link outlineHeading6 outlineHeading5


let b:current_syntax = 'outline'