File tree Expand file tree Collapse file tree 1 file changed +31
-2
lines changed
Expand file tree Collapse file tree 1 file changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,14 @@ if not ok_utils then
1010 ts_utils = nil
1111end
1212
13+ local function get_parser_filetype ( lang )
14+ if lang and ts_parsers .list [ lang ] then
15+ return ts_parsers .list [ lang ].filetype or lang
16+ else
17+ return " "
18+ end
19+ end
20+
1321function M .is_available ()
1422 return ok_parsers and ok_utils
1523end
@@ -22,8 +30,29 @@ function M.get_ft_at_cursor ( bufnr )
2230 local parser = ts_parsers .get_parser ( bufnr )
2331 local lang = parser :language_for_range ( { cur_node :range () } ):lang ()
2432
25- if ts_parsers .list [ lang ] ~= nil then
26- return ts_parsers .list [ lang ].filetype or lang
33+ local filetype = get_parser_filetype ( lang )
34+
35+ if filetype ~= " " then
36+
37+ -- XXX: not works
38+ local parent_parser = parser :parent ()
39+
40+ if parent_parser then
41+ local parent_lang = parent_parser :lang ()
42+
43+ if parent_lang and parent_lang ~= filetype then
44+ local parent_filetype = get_parser_filetype ( parent_lang )
45+
46+ if parent_filetype ~= " " then
47+ filetype = filetype .. " ." .. parent_filetype .. " /" .. filetype
48+ end
49+ end
50+ end
51+
52+ -- XXX
53+ vim .print ( " --- " .. filetype )
54+
55+ return filetype
2756 end
2857 end
2958 end
You can’t perform that action at this time.
0 commit comments