1
1
" vorg.vim - Vim ORG mode. Your stuff in plain text.
2
2
" Maintainer: Ithai Levi <http://github.org/L3V3L9/>
3
- " Version: 0.2
3
+ " Version: 0.3
4
4
" GetLatestVimScripts: 2842 1 :AutoInstall: vorg.vim
5
5
6
6
" Syntax Definition
@@ -16,8 +16,8 @@ syn match vorgLink "\%(http://\|www\.\)[^ ,;\t]*" contained
16
16
syn match vorgTitle " ^\t *[-\* ].*" contains =vorgTag,vorgLink
17
17
syn match vorgTaskAlt " \t *\[ [o\ ]\] .*" contains =vorgTag,vorgDeadline,vorgLink
18
18
syn match vorgTask " \t *[-\* ].*\[ [o\ ]\] .*" contains =vorgTag,vorgDeadline,vorgLink
19
- syn match vorgDone " \t *[-\* ].*\[ [X|x]\] .*"
20
- syn match vorgDoneAlt " \t *\[ [X|x]\] .*"
19
+ syn match vorgDone " \t *[-\* ].*\[ [X|x]\] .*"
20
+ syn match vorgDoneAlt " \t *\[ [X|x]\] .*"
21
21
syn match vorgComment " // .*"
22
22
syn match vorgLogdate " \t *[-\* ].*\~\ \d *[/-]\d *[/-]\d *[ ]@[ ]\d *:\d *.*" contains =vorgTag,vorgLink
23
23
syn match vorgPrefixLogdate " \t *[-\* ]\ *\d *[/-]\d *[/-]\d *[ ]@[ ]\d *:\d *\ \~ .*" contains =vorgTag,vorgLink
@@ -28,7 +28,7 @@ hi Keyword gui=bold
28
28
hi Number gui = underline
29
29
30
30
hi def link vorgComment Comment
31
- hi def link vorgDone Comment
31
+ hi def link vorgDone Comment
32
32
hi def link vorgDoneAlt Comment
33
33
hi def link vorgTitle Function
34
34
hi def link vorgTaskAlt Keyword
@@ -37,57 +37,54 @@ hi def link vorgTag Comment
37
37
hi def link vorgDeadline String
38
38
hi def link vorgLogdate Constant
39
39
hi def link vorgPrefixLogdate Constant
40
- hi ! vorgLink gui = underline
40
+ hi ! vorgLink gui = underline
41
41
hi ! link Folded Comment
42
- " Special, Function Constant Statement
43
- " Custom Folding --------------------
44
- function ! SimpleFoldText ()
42
+
43
+ " Fold based on the Vorg specification
44
+ function ! SimpleFoldText ()
45
45
return repeat (' ' ,indent (v: foldstart )).substitute (getline (v: foldstart )," [ \t ]*[-\* ]" ," +" ," " ).' '
46
- endfunction
46
+ endfunction
47
47
set foldtext = SimpleFoldText () " Custom fold text function
48
48
49
49
function ! LimitFoldLevel (level )
50
50
return a: level
51
- " if a:level>3
52
- " return 3
53
- " else
54
- " return a:level
55
- " endif
56
51
endfunction
57
52
58
53
function ! VorgFoldExpr (lnum)
59
- if match (getline (a: lnum ),' ^[ \t]*$' ) != -1
60
- if indent (prevnonblank (a: lnum- 1 )) > indent (nextnonblank (a: lnum+ 1 ))
61
- if nextnonblank (a: lnum+ 1 ) == a: lnum+ 1
62
- return ' <' .LimitFoldLevel (indent (prevnonblank (a: lnum- 1 )) / &sw )
63
- endif
64
- endif
65
- return ' ='
66
- endif
67
- if indent ( nextnonblank (a: lnum+ 1 ) ) > indent ( a: lnum )
68
- if indent (prevnonblank (a: lnum- 1 )) > indent (a: lnum )
69
- return ' >' .(LimitFoldLevel (indent (a: lnum ) / &sw + 1 ))
70
- else
71
- return LimitFoldLevel (indent ( a: lnum ) / &sw + 1 )
72
- endif
73
- endif
74
54
75
- if indent ( nextnonblank (a: lnum+ 1 ) ) == indent ( a: lnum )
76
- return LimitFoldLevel (indent ( a: lnum ) / &sw )
77
- endif
55
+ if match (getline (a: lnum ),' ^[ \t]*$' ) != -1
56
+ if indent (prevnonblank (a: lnum- 1 )) > indent (nextnonblank (a: lnum+ 1 ))
57
+ if nextnonblank (a: lnum+ 1 ) == a: lnum+ 1
58
+ return ' <' .LimitFoldLevel (indent (prevnonblank (a: lnum- 1 )) / &sw )
59
+ endif
60
+ endif
61
+ return ' ='
62
+ endif
63
+
64
+ if indent ( nextnonblank (a: lnum+ 1 ) ) > indent ( a: lnum )
65
+ if indent (prevnonblank (a: lnum- 1 )) > indent (a: lnum )
66
+ return ' >' .(LimitFoldLevel (indent (a: lnum ) / &sw + 1 ))
67
+ else
68
+ return LimitFoldLevel (indent ( a: lnum ) / &sw + 1 )
69
+ endif
70
+ endif
71
+
72
+ if indent ( nextnonblank (a: lnum+ 1 ) ) == indent ( a: lnum )
73
+ return LimitFoldLevel (indent ( a: lnum ) / &sw )
74
+ endif
78
75
79
- if indent ( nextnonblank (a: lnum+ 1 ) ) < indent ( a: lnum )
80
- if nextnonblank (a: lnum+ 1 ) > a: lnum+ 1
81
- return LimitFoldLevel (indent (a: lnum ) / &sw )
82
- else
83
- return ' <' .LimitFoldLevel (indent (a: lnum ) / &sw )
84
- endif
85
- endif
76
+ if indent ( nextnonblank (a: lnum+ 1 ) ) < indent ( a: lnum )
77
+ if nextnonblank (a: lnum+ 1 ) > a: lnum+ 1
78
+ return LimitFoldLevel (indent (a: lnum ) / &sw )
79
+ else
80
+ return ' <' .LimitFoldLevel (indent (a: lnum ) / &sw )
81
+ endif
82
+ endif
86
83
87
- return ' ='
84
+ return ' ='
88
85
endfunction
89
86
90
87
set foldmethod = expr
91
- set foldexpr = VorgFoldExpr (v: lnum )
88
+ set foldexpr = VorgFoldExpr (v: lnum )
92
89
93
90
let b: current_syntax = " vorg"
0 commit comments