" Vim filetype plugin " Language: Mojo " Maintainer: Riley Bruins " 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<'