diff options
author | Christian Clason <c.clason@uni-graz.at> | 2024-07-11 22:55:26 +0200 |
---|---|---|
committer | Christian Clason <c.clason@uni-graz.at> | 2024-07-12 11:34:11 +0200 |
commit | 26d52538051f72ba9e6e34a0a43db2cc3d12dcff (patch) | |
tree | e71c55066f582ecfff2a78e40d0bdf637cbef956 | |
parent | f4beab7ad825d5b8958526efd715f96678ba6f50 (diff) | |
download | rneovim-26d52538051f72ba9e6e34a0a43db2cc3d12dcff.tar.gz rneovim-26d52538051f72ba9e6e34a0a43db2cc3d12dcff.tar.bz2 rneovim-26d52538051f72ba9e6e34a0a43db2cc3d12dcff.zip |
vim-patch:fc533c9: runtime(mojo): include mojo ftplugin and indent script
Taken from excerpts of the Python ftplugin and adapted,
indent script simply sources the python indent script.
closes: vim/vim#15171
https://github.com/vim/vim/commit/fc533c9f06aff579437f9f2348a21241a72c7967
Co-authored-by: Riley Bruins <ribru17@hotmail.com>
-rw-r--r-- | runtime/ftplugin/mojo.vim | 41 | ||||
-rw-r--r-- | runtime/indent/mojo.vim | 6 |
2 files changed, 47 insertions, 0 deletions
diff --git a/runtime/ftplugin/mojo.vim b/runtime/ftplugin/mojo.vim new file mode 100644 index 0000000000..ff50229934 --- /dev/null +++ b/runtime/ftplugin/mojo.vim @@ -0,0 +1,41 @@ +" Vim filetype plugin +" Language: Mojo +" Maintainer: Riley Bruins <ribru17@gmail.com> +" Last Change: 2024 Jul 07 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal include=^\\s*\\(from\\\|import\\) +setlocal define=^\\s*\\(\\(async\\s\\+\\)\\?def\\\|class\\) + +" For imports with leading .., append / and replace additional .s with ../ +let b:grandparent_match = '^\(.\.\)\(\.*\)' +let b:grandparent_sub = '\=submatch(1)."/".repeat("../",strlen(submatch(2)))' + +" For imports with a single leading ., replace it with ./ +let b:parent_match = '^\.\(\.\)\@!' +let b:parent_sub = './' + +" Replace any . sandwiched between word characters with / +let b:child_match = '\(\w\)\.\(\w\)' +let b:child_sub = '\1/\2' + +setlocal includeexpr=substitute(substitute(substitute( + \v:fname, + \b:grandparent_match,b:grandparent_sub,''), + \b:parent_match,b:parent_sub,''), + \b:child_match,b:child_sub,'g') + +setlocal suffixesadd=.mojo +setlocal comments=b:#,fb:- +setlocal commentstring=#\ %s + +let b:undo_ftplugin = 'setlocal include<' + \ . '|setlocal define<' + \ . '|setlocal includeexpr<' + \ . '|setlocal suffixesadd<' + \ . '|setlocal comments<' + \ . '|setlocal commentstring<' diff --git a/runtime/indent/mojo.vim b/runtime/indent/mojo.vim new file mode 100644 index 0000000000..9b6a7d4c58 --- /dev/null +++ b/runtime/indent/mojo.vim @@ -0,0 +1,6 @@ +" Vim indent file +" Language: Mojo +" Maintainer: Riley Bruins <ribru17@gmail.com> +" Last Change: 2024 Jul 07 + +runtime! indent/python.vim |