annotate plugins/taghelp @ 4:1a705d7a7521

working on stuff
author luka
date Thu, 23 Oct 2025 12:33:51 -0400
parents a4ec03f77554
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a4ec03f77554 I don't know...
luka
parents:
diff changeset
1 autocmd BufRead,BufNewFile *.blade.php set filetype=blade
a4ec03f77554 I don't know...
luka
parents:
diff changeset
2
a4ec03f77554 I don't know...
luka
parents:
diff changeset
3
4
1a705d7a7521 working on stuff
luka
parents: 0
diff changeset
4 " autocmd FileType blade inoremap<buffer> > <c-r>=CreateTag()<cr>
0
a4ec03f77554 I don't know...
luka
parents:
diff changeset
5
a4ec03f77554 I don't know...
luka
parents:
diff changeset
6
a4ec03f77554 I don't know...
luka
parents:
diff changeset
7 " Abbreviations
a4ec03f77554 I don't know...
luka
parents:
diff changeset
8 autocmd FileType blade iabbr <silent> class= class=""<Left><C-R>=Eatchar('\s')<CR>
a4ec03f77554 I don't know...
luka
parents:
diff changeset
9 autocmd FileType blade iabbr <silent> id= id=""<Left><C-R>=Eatchar('\s')<CR>
a4ec03f77554 I don't know...
luka
parents:
diff changeset
10 autocmd FileType blade iabbr <silent> log console.log()<Left><C-R>=Eatchar('\s')<CR>
a4ec03f77554 I don't know...
luka
parents:
diff changeset
11
a4ec03f77554 I don't know...
luka
parents:
diff changeset
12
a4ec03f77554 I don't know...
luka
parents:
diff changeset
13
a4ec03f77554 I don't know...
luka
parents:
diff changeset
14
a4ec03f77554 I don't know...
luka
parents:
diff changeset
15 func Eatchar(pat)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
16 let c = nr2char(getchar(0))
a4ec03f77554 I don't know...
luka
parents:
diff changeset
17 return (c =~ a:pat) ? '' : c
a4ec03f77554 I don't know...
luka
parents:
diff changeset
18 endfunc
a4ec03f77554 I don't know...
luka
parents:
diff changeset
19
a4ec03f77554 I don't know...
luka
parents:
diff changeset
20 func CreateTag()
a4ec03f77554 I don't know...
luka
parents:
diff changeset
21 let line = getline('.')
a4ec03f77554 I don't know...
luka
parents:
diff changeset
22 let end = col('.') - 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
23 let begin = end - 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
24 let start = ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
25 let tagname_regexp = '[a-zA-Z0-9-_\.#]'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
26 let first_chars = '[a-zA-Z0-9]'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
27 let id_regexp = '[#]'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
28 let class_regexp = '[\.]'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
29 let tagname = ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
30 let id = ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
31 let classes = ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
32 let current_type = 0 " 0: tagname, 1: classes, 2: id
a4ec03f77554 I don't know...
luka
parents:
diff changeset
33 " incase the previous character was not in the usage
a4ec03f77554 I don't know...
luka
parents:
diff changeset
34 if line[begin] !~ first_chars
a4ec03f77554 I don't know...
luka
parents:
diff changeset
35 return '>'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
36 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
37
a4ec03f77554 I don't know...
luka
parents:
diff changeset
38 " reverse until we leave the replacement
a4ec03f77554 I don't know...
luka
parents:
diff changeset
39 while begin > 0
a4ec03f77554 I don't know...
luka
parents:
diff changeset
40 if line[begin] !~ tagname_regexp
a4ec03f77554 I don't know...
luka
parents:
diff changeset
41 let begin += 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
42 break
a4ec03f77554 I don't know...
luka
parents:
diff changeset
43 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
44 let begin -= 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
45 endwhile
a4ec03f77554 I don't know...
luka
parents:
diff changeset
46
a4ec03f77554 I don't know...
luka
parents:
diff changeset
47 let start = begin
a4ec03f77554 I don't know...
luka
parents:
diff changeset
48
a4ec03f77554 I don't know...
luka
parents:
diff changeset
49 " start over reading the tag name
a4ec03f77554 I don't know...
luka
parents:
diff changeset
50 while begin < end
a4ec03f77554 I don't know...
luka
parents:
diff changeset
51 "deteremine if the type changes
a4ec03f77554 I don't know...
luka
parents:
diff changeset
52 if line[begin] =~ id_regexp
a4ec03f77554 I don't know...
luka
parents:
diff changeset
53 let current_type = 2
a4ec03f77554 I don't know...
luka
parents:
diff changeset
54 elseif line[begin] =~ class_regexp
a4ec03f77554 I don't know...
luka
parents:
diff changeset
55 let current_type = 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
56 "need a space in the class if there is already classes
a4ec03f77554 I don't know...
luka
parents:
diff changeset
57 if classes != ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
58 let classes .= ' '
a4ec03f77554 I don't know...
luka
parents:
diff changeset
59 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
60 else
a4ec03f77554 I don't know...
luka
parents:
diff changeset
61 " Write to the current type
a4ec03f77554 I don't know...
luka
parents:
diff changeset
62 if current_type == 0
a4ec03f77554 I don't know...
luka
parents:
diff changeset
63 let tagname .= line[begin]
a4ec03f77554 I don't know...
luka
parents:
diff changeset
64 elseif current_type == 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
65 let classes .= line[begin]
a4ec03f77554 I don't know...
luka
parents:
diff changeset
66 elseif current_type == 2
a4ec03f77554 I don't know...
luka
parents:
diff changeset
67 let id .= line[begin]
a4ec03f77554 I don't know...
luka
parents:
diff changeset
68 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
69 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
70
a4ec03f77554 I don't know...
luka
parents:
diff changeset
71 let begin += 1
a4ec03f77554 I don't know...
luka
parents:
diff changeset
72 endwhile
a4ec03f77554 I don't know...
luka
parents:
diff changeset
73
a4ec03f77554 I don't know...
luka
parents:
diff changeset
74 " Trim the strings, just in case
a4ec03f77554 I don't know...
luka
parents:
diff changeset
75 let tagname = trim(tagname)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
76 let id = trim(id)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
77 let classes = trim(classes)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
78
a4ec03f77554 I don't know...
luka
parents:
diff changeset
79
a4ec03f77554 I don't know...
luka
parents:
diff changeset
80 let str = '<' .tagname
a4ec03f77554 I don't know...
luka
parents:
diff changeset
81 if id != ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
82 let str .= ' id="' . id . '"'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
83 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
84 if classes != ''
a4ec03f77554 I don't know...
luka
parents:
diff changeset
85 let str .= ' class="' . classes . '"'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
86 endif
a4ec03f77554 I don't know...
luka
parents:
diff changeset
87 let str .= '> </'. tagname . '>'
a4ec03f77554 I don't know...
luka
parents:
diff changeset
88 " delete the previous characters
a4ec03f77554 I don't know...
luka
parents:
diff changeset
89 let del_count = (end-start)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
90 execute "normal! " . del_count . "X"
a4ec03f77554 I don't know...
luka
parents:
diff changeset
91 " delete the char under the cursor
a4ec03f77554 I don't know...
luka
parents:
diff changeset
92 execute "normal! x"
a4ec03f77554 I don't know...
luka
parents:
diff changeset
93
a4ec03f77554 I don't know...
luka
parents:
diff changeset
94 return str . repeat("\<Left>", len(tagname) + 4)
a4ec03f77554 I don't know...
luka
parents:
diff changeset
95
a4ec03f77554 I don't know...
luka
parents:
diff changeset
96 endfunc
a4ec03f77554 I don't know...
luka
parents:
diff changeset
97