aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorTheodor Thornhill2023-02-17 20:46:19 +0100
committerTheodor Thornhill2023-02-19 20:47:05 +0100
commitc544df4fa3f217d0039bb9cb38c809c830558c25 (patch)
tree42866178c7efae24f7bb88b1d564166ab61338c6 /test
parentd397f3d508464b1eab2d2b3b7e4c3b80aff9d536 (diff)
downloademacs-c544df4fa3f217d0039bb9cb38c809c830558c25.tar.gz
emacs-c544df4fa3f217d0039bb9cb38c809c830558c25.zip
Cleanup preproc indent for c-ts-mode (bug#61558)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we indent to great-grand-parent if inside an #ifdef...#endif block. If grand-parent is root node, then don't indent one step. (c-ts-mode--preproc-offset): New helper anchor function to calculate indent offset.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts45
-rw-r--r--test/lisp/progmodes/c-ts-mode-tests.el4
2 files changed, 49 insertions, 0 deletions
diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
new file mode 100644
index 00000000000..5a4996f642e
--- /dev/null
+++ b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
@@ -0,0 +1,45 @@
1Code:
2 (lambda ()
3 (c-ts-mode)
4 (newline)
5 (indent-for-tab-command))
6
7Point-Char: |
8
9Name: Indents inside #if preproc
10
11=-=
12static void
13free_glyph_pool (struct glyph_pool *pool)
14{
15 if (pool)
16 {
17#if defined GLYPH_DEBUG|
18#endif
19 }
20}
21=-=
22static void
23free_glyph_pool (struct glyph_pool *pool)
24{
25 if (pool)
26 {
27#if defined GLYPH_DEBUG
28 |
29#endif
30 }
31}
32=-=-=
33
34Name: Indents to 0 if #if preproc at root
35
36=-=
37#if 0|
38/* */
39static void
40=-=
41#if 0
42|
43/* */
44static void
45=-=-=
diff --git a/test/lisp/progmodes/c-ts-mode-tests.el b/test/lisp/progmodes/c-ts-mode-tests.el
index ddf64b40736..ea5fab4cbef 100644
--- a/test/lisp/progmodes/c-ts-mode-tests.el
+++ b/test/lisp/progmodes/c-ts-mode-tests.el
@@ -27,6 +27,10 @@
27 (skip-unless (treesit-ready-p 'c)) 27 (skip-unless (treesit-ready-p 'c))
28 (ert-test-erts-file (ert-resource-file "indent.erts"))) 28 (ert-test-erts-file (ert-resource-file "indent.erts")))
29 29
30(ert-deftest c-ts-mode-test-indentation-preproc ()
31 (skip-unless (treesit-ready-p 'c))
32 (ert-test-erts-file (ert-resource-file "indent-preproc.erts")))
33
30(ert-deftest c-ts-mode-test-indentation-bsd () 34(ert-deftest c-ts-mode-test-indentation-bsd ()
31 (skip-unless (treesit-ready-p 'c)) 35 (skip-unless (treesit-ready-p 'c))
32 (ert-test-erts-file (ert-resource-file "indent-bsd.erts"))) 36 (ert-test-erts-file (ert-resource-file "indent-bsd.erts")))