Skip to content

Commit 7c77415

Browse files
committed
indent: option to allow comments to be aligned to 0-column
1 parent 2d346d2 commit 7c77415

8 files changed

+146
-1
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ add_custom_target(TARGET name
6464
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
6565
```
6666

67+
### Comments
68+
69+
By setting `g:cmake_indent_align_comments_to_first_column` to 1 (default: 0) comment will always be aligned to the
70+
zero column - otherwise they will aligned as normal line with a statement.
71+
6772
## Test
6873

6974
There is a ever growing test-suite based on ctest located in test/

indent/cmake.vim

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ if !exists('g:cmake_indent_align_command_arguments')
5050
let g:cmake_indent_align_command_arguments = 0
5151
endif
5252

53+
if !exists('g:cmake_indent_align_comments_to_first_column')
54+
let g:cmake_indent_align_comments_to_first_column = 0
55+
endif
56+
5357
fun! CMakeGetIndent(lnum)
5458
let this_line = getline(a:lnum)
5559

@@ -102,7 +106,11 @@ fun! CMakeGetIndent(lnum)
102106
if previous_line =~? s:cmake_indent_begin_regex " control begin block
103107
let ind = ind + shiftwidth()
104108
elseif this_line =~? s:cmake_indent_end_regex " control end block
105-
let ind = ind - shiftwidth()
109+
let ind = ind - shiftwidth()
110+
elseif this_line =~? s:cmake_indent_comment_line
111+
if g:cmake_indent_align_comments_to_first_column == 1
112+
let ind = 0
113+
endif
106114
endif
107115

108116
return ind
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
set_property(TARGET foo APPEND PROPERTY
2+
INCLUDE_DIRECTORIES ${BAR})
3+
4+
message(STATUS "Hello World")
5+
6+
set_property(TARGET foo APPEND PROPERTY # with comment
7+
INCLUDE_DIRECTORIES ${BAR} "()")
8+
9+
if(VAR)
10+
set_property(TARGET foo APPEND PROPERTY # with comment
11+
INCLUDE_DIRECTORIES ${BAR})
12+
13+
message(STATUS "Hello World")
14+
15+
set_property(TARGET foo APPEND PROPERTY
16+
# with comment
17+
INCLUDE_DIRECTORIES ${BAR})
18+
endif()
19+
20+
if(VAR)
21+
set_property(TARGET
22+
HELLO
23+
HELLO)
24+
endif()
25+
26+
if(VAR)
27+
set_property(
28+
TARGET
29+
HELLO
30+
HELLO)
31+
endif()
32+
33+
add_custom_command(tout # )
34+
#add_custom_command(
35+
hallo
36+
)
37+
38+
message(STATUS "Hello" #[[Bracket Comment]] "second")
39+
40+
add_custom_command() # TODO this will wrongly align to ( due to bracket-comment
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<body>
2+
<pre id='vimCodeElement'>
3+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span>
4+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
5+
6+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello World&quot;</span>)
7+
8+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span> <span class="Comment"># with comment</span>
9+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span> <span class="Constant">&quot;()&quot;</span>)
10+
11+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
12+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span> <span class="Comment"># with comment</span>
13+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
14+
15+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello World&quot;</span>)
16+
17+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span>
18+
<span class="Comment"># with comment</span>
19+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
20+
<span class="Statement">endif</span>()
21+
22+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
23+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span>
24+
HELLO
25+
HELLO)
26+
<span class="Statement">endif</span>()
27+
28+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
29+
<span class="Identifier">set_property</span>(
30+
<span class="ModeMsg">TARGET</span>
31+
HELLO
32+
HELLO)
33+
<span class="Statement">endif</span>()
34+
35+
<span class="Identifier">add_custom_command</span>(tout <span class="Comment"># )</span>
36+
<span class="Comment">#add_custom_command(</span>
37+
hallo
38+
)
39+
40+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello&quot;</span> <span class="Comment">#[[Bracket Comment]]</span> <span class="Constant">&quot;second&quot;</span>)
41+
42+
<span class="Identifier">add_custom_command</span>() <span class="Comment"># </span><span class="TODO">TODO</span><span class="Comment"> this will wrongly align to ( due to bracket-comment</span>
43+
</pre>
44+
</body>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
let g:cmake_indent_align_command_arguments = 1
2+
let g:cmake_indent_align_comments_to_first_column = 1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
indent4.cmake
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<body>
2+
<pre id='vimCodeElement'>
3+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span>
4+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
5+
6+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello World&quot;</span>)
7+
8+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span> <span class="Comment"># with comment</span>
9+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span> <span class="Constant">&quot;()&quot;</span>)
10+
11+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
12+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span> <span class="Comment"># with comment</span>
13+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
14+
15+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello World&quot;</span>)
16+
17+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span> foo <span class="ModeMsg">APPEND</span> <span class="ModeMsg">PROPERTY</span>
18+
<span class="Comment"># with comment</span>
19+
<span class="ModeMsg">INCLUDE_DIRECTORIES</span> <span class="Type">${BAR}</span>)
20+
<span class="Statement">endif</span>()
21+
22+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
23+
<span class="Identifier">set_property</span>(<span class="ModeMsg">TARGET</span>
24+
HELLO
25+
HELLO)
26+
<span class="Statement">endif</span>()
27+
28+
<span class="Statement">if</span>(<span class="ModeMsg">VAR</span>)
29+
<span class="Identifier">set_property</span>(
30+
<span class="ModeMsg">TARGET</span>
31+
HELLO
32+
HELLO)
33+
<span class="Statement">endif</span>()
34+
35+
<span class="Identifier">add_custom_command</span>(tout <span class="Comment"># )</span>
36+
<span class="Comment">#add_custom_command(</span>
37+
hallo
38+
)
39+
40+
<span class="Identifier">message</span>(<span class="ModeMsg">STATUS</span> <span class="Constant">&quot;Hello&quot;</span> <span class="Comment">#[[Bracket Comment]]</span> <span class="Constant">&quot;second&quot;</span>)
41+
42+
<span class="Identifier">add_custom_command</span>() <span class="Comment"># </span><span class="TODO">TODO</span><span class="Comment"> this will wrongly align to ( due to bracket-comment</span>
43+
</pre>
44+
</body>

test/indent4-comment-zero-col.vim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let g:cmake_indent_align_comments_to_first_column = 1

0 commit comments

Comments
 (0)