Mercurial > vim
annotate runtime/indent/raku.vim @ 34178:c5a10c03afb8 v9.1.0044
patch 9.1.0044: po Makefiles can be improved
Commit: https://github.com/vim/vim/commit/76ba724e1d56b00e72834a9203855f0656dcbb58
Author: RestorerZ <restorer@mail2k.ru>
Date: Mon Jan 22 20:28:12 2024 +0100
patch 9.1.0044: po Makefiles can be improved
Problem: po Makefiles can be improved
Solution: Improve the style of the Makefiles, update
Makefile variables, update documentation
(RestorerZ)
closes: #13858
closes: #13857
Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 22 Jan 2024 20:45:03 +0100 |
parents | 5c220cf30f1f |
children |
rev | line source |
---|---|
2152 | 1 " Vim indent file |
4681
2eb30f341e8d
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2152
diff
changeset
|
2 " Language: Perl 6 |
2eb30f341e8d
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2152
diff
changeset
|
3 " Maintainer: vim-perl <vim-perl@googlegroups.com> |
20115 | 4 " Homepage: https://github.com/vim-perl/vim-perl |
5 " Bugs/requests: https://github.com/vim-perl/vim-perl/issues | |
6 " Last Change: 2020 Apr 15 | |
33052
5c220cf30f1f
runtime: Set b:undo_indent where missing (#12944)
Christian Brabandt <cb@256bit.org>
parents:
24520
diff
changeset
|
7 " 2023 Aug 28 by Vim Project (undo_indent) |
4681
2eb30f341e8d
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2152
diff
changeset
|
8 " Contributors: Andy Lester <andy@petdance.com> |
2eb30f341e8d
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2152
diff
changeset
|
9 " Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> |
2152 | 10 " |
4681
2eb30f341e8d
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2152
diff
changeset
|
11 " Adapted from indent/perl.vim by Rafael Garcia-Suarez <rgarciasuarez@free.fr> |
2152 | 12 |
13 " Suggestions and improvements by : | |
14 " Aaron J. Sherman (use syntax for hints) | |
15 " Artem Chuprina (play nice with folding) | |
16 " TODO: | |
17 " This file still relies on stuff from the Perl 5 syntax file, which Perl 6 | |
18 " does not use. | |
19 " | |
20 " Things that are not or not properly indented (yet) : | |
21 " - Continued statements | |
22 " print "foo", | |
23 " "bar"; | |
24 " print "foo" | |
25 " if bar(); | |
26 " - Multiline regular expressions (m//x) | |
27 " (The following probably needs modifying the perl syntax file) | |
28 " - qw() lists | |
29 " - Heredocs with terminators that don't match \I\i* | |
30 | |
31 " Only load this indent file when no other was loaded. | |
32 if exists("b:did_indent") | |
33 finish | |
34 endif | |
35 let b:did_indent = 1 | |
36 | |
37 " Is syntax highlighting active ? | |
38 let b:indent_use_syntax = has("syntax") | |
39 | |
24520 | 40 setlocal indentexpr=GetRakuIndent() |
2152 | 41 |
42 " we reset it first because the Perl 5 indent file might have been loaded due | |
43 " to a .pl/pm file extension, and indent files don't clean up afterwards | |
44 setlocal indentkeys& | |
45 | |
46 setlocal indentkeys+=0=,0),0],0>,0»,0=or,0=and | |
47 if !b:indent_use_syntax | |
48 setlocal indentkeys+=0=EO | |
49 endif | |
50 | |
33052
5c220cf30f1f
runtime: Set b:undo_indent where missing (#12944)
Christian Brabandt <cb@256bit.org>
parents:
24520
diff
changeset
|
51 let b:undo_indent = "setlocal indentexpr< indentkeys<" |
5c220cf30f1f
runtime: Set b:undo_indent where missing (#12944)
Christian Brabandt <cb@256bit.org>
parents:
24520
diff
changeset
|
52 |
2152 | 53 let s:cpo_save = &cpo |
54 set cpo-=C | |
55 | |
24520 | 56 function! GetRakuIndent() |
2152 | 57 |
58 " Get the line to be indented | |
59 let cline = getline(v:lnum) | |
60 | |
61 " Indent POD markers to column 0 | |
62 if cline =~ '^\s*=\L\@!' | |
63 return 0 | |
64 endif | |
65 | |
66 " Get current syntax item at the line's first char | |
67 let csynid = '' | |
68 if b:indent_use_syntax | |
69 let csynid = synIDattr(synID(v:lnum,1,0),"name") | |
70 endif | |
71 | |
72 " Don't reindent POD and heredocs | |
24520 | 73 if csynid =~ "^rakuPod" |
2152 | 74 return indent(v:lnum) |
75 endif | |
76 | |
77 | |
78 " Now get the indent of the previous perl line. | |
79 | |
80 " Find a non-blank line above the current line. | |
81 let lnum = prevnonblank(v:lnum - 1) | |
82 " Hit the start of the file, use zero indent. | |
83 if lnum == 0 | |
84 return 0 | |
85 endif | |
86 let line = getline(lnum) | |
87 let ind = indent(lnum) | |
88 " Skip heredocs, POD, and comments on 1st column | |
89 if b:indent_use_syntax | |
90 let skippin = 2 | |
91 while skippin | |
92 let synid = synIDattr(synID(lnum,1,0),"name") | |
24520 | 93 if (synid =~ "^rakuPod" || synid =~ "rakuComment") |
2152 | 94 let lnum = prevnonblank(lnum - 1) |
95 if lnum == 0 | |
96 return 0 | |
97 endif | |
98 let line = getline(lnum) | |
99 let ind = indent(lnum) | |
100 let skippin = 1 | |
101 else | |
102 let skippin = 0 | |
103 endif | |
104 endwhile | |
105 endif | |
106 | |
107 if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$' | |
24520 | 108 let ind = ind + &sw |
2152 | 109 endif |
110 if cline =~ '^\s*[)}\]»>]' | |
24520 | 111 let ind = ind - &sw |
2152 | 112 endif |
113 | |
114 " Indent lines that begin with 'or' or 'and' | |
115 if cline =~ '^\s*\(or\|and\)\>' | |
116 if line !~ '^\s*\(or\|and\)\>' | |
24520 | 117 let ind = ind + &sw |
2152 | 118 endif |
119 elseif line =~ '^\s*\(or\|and\)\>' | |
24520 | 120 let ind = ind - &sw |
2152 | 121 endif |
122 | |
123 return ind | |
124 | |
125 endfunction | |
126 | |
127 let &cpo = s:cpo_save | |
128 unlet s:cpo_save | |
129 | |
130 " vim:ts=8:sts=4:sw=4:expandtab:ft=vim |