if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'raku') == -1 " Vim filetype plugin file " Language: Raku " Maintainer: vim-perl " Homepage: https://github.com/vim-perl/vim-perl6 " Bugs/requests: https://github.com/vim-perl/vim-perl6/issues " Last Change: {{LAST_CHANGE}} " Contributors: Hinrik Örn Sigurðsson " " Based on ftplugin/perl.vim by Dan Sharp if exists("b:did_ftplugin") | finish | endif let b:did_ftplugin = 1 " Make sure the continuation lines below do not cause problems in " compatibility mode. let s:save_cpo = &cpo set cpo-=C setlocal formatoptions-=t setlocal formatoptions+=crqol setlocal keywordprg=p6doc setlocal comments=:#\|,:#=,:# setlocal commentstring=#%s " Provided by Ned Konz "--------------------------------------------- setlocal include=\\<\\(use\\\|require\\)\\> setlocal includeexpr=substitute(v:fname,'::','/','g') setlocal suffixesadd=.pm6,.pm,.raku,.rakutest,.t6 setlocal define=[^A-Za-z_] " The following line changes a global variable but is necessary to make " gf and similar commands work. Thanks to Andrew Pimlott for pointing out " the problem. If this causes a " problem for you, add an " after/ftplugin/raku.vim file that contains " set isfname-=: set isfname+=: setlocal iskeyword=@,48-57,_,192-255,- " Set this once, globally. if !exists("perlpath") if executable("perl6") try if &shellxquote != '"' let perlpath = system('perl6 -e "@*INC.join(q/,/).say"') else let perlpath = system("perl6 -e '@*INC.join(q/,/).say'") endif let perlpath = substitute(perlpath,',.$',',,','') catch /E145:/ let perlpath = ".,," endtry else " If we can't call perl to get its path, just default to using the " current directory and the directory of the current file. let perlpath = ".,," endif endif " Append perlpath to the existing path value, if it is set. Since we don't " use += to do it because of the commas in perlpath, we have to handle the " global / local settings, too. if &l:path == "" if &g:path == "" let &l:path=perlpath else let &l:path=&g:path.",".perlpath endif else let &l:path=&l:path.",".perlpath endif "--------------------------------------------- " Convert ascii-based ops into their single-character unicode equivalent if get(g:, 'raku_unicode_abbrevs', 0) iabbrev !(<) ⊄ iabbrev !(<=) ⊈ iabbrev !(>) ⊅ iabbrev !(>=) ⊉ iabbrev !(cont) ∌ iabbrev !(elem) ∉ iabbrev != ≠ iabbrev (&) ∩ iabbrev (+) ⊎ iabbrev (-) ∖ iabbrev (.) ⊍ iabbrev (<) ⊂ iabbrev (<+) ≼ iabbrev (<=) ⊆ iabbrev (>) ⊃ iabbrev (>+) ≽ iabbrev (>=) ⊇ iabbrev (\|) ∪ iabbrev (^) ⊖ iabbrev (atomic) ⚛ iabbrev (cont) ∋ iabbrev (elem) ∈ iabbrev * × iabbrev **0 ⁰ iabbrev **1 ¹ iabbrev **2 ² iabbrev **3 ³ iabbrev **4 ⁴ iabbrev **5 ⁵ iabbrev **6 ⁶ iabbrev **7 ⁷ iabbrev **8 ⁸ iabbrev **9 ⁹ iabbrev ... … iabbrev / ÷ iabbrev << « iabbrev <<[=]<< «=« iabbrev <<[=]>> «=» iabbrev <= ≤ iabbrev =~= ≅ iabbrev >= ≥ iabbrev >> » iabbrev >>[=]<< »=« iabbrev >>[=]>> »=» iabbrev Inf ∞ iabbrev atomic-add-fetch ⚛+= iabbrev atomic-assign ⚛= iabbrev atomic-fetch ⚛ iabbrev atomic-dec-fetch --⚛ iabbrev atomic-fetch-dec ⚛-- iabbrev atomic-fetch-inc ⚛++ iabbrev atomic-inc-fetch ++⚛ iabbrev atomic-sub-fetch ⚛−= iabbrev e 𝑒 iabbrev o ∘ iabbrev pi π iabbrev set() ∅ iabbrev tau τ endif " Undo the stuff we changed. let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< isk< kp< path<" . \ " | unlet! b:browsefilter" " Restore the saved compatibility options. let &cpo = s:save_cpo unlet s:save_cpo endif