summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwzy <32936898+Freed-Wu@users.noreply.github.com>2024-04-15 02:28:29 +0800
committerGitHub <noreply@github.com>2024-04-14 20:28:29 +0200
commit8a31de6dd275b3dc925fee556ccccd5db8ee2504 (patch)
treee6a913b6050d8410b2e7a7e716ec9632a0bae455
parent799dedec0e959d7a18df8a06d497770706d1627c (diff)
compiler(rime_deployer): include new compiler, use it for '*.custom.yaml' files (#14460)
Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--runtime/compiler/rime_deployer.vim30
-rw-r--r--runtime/ftplugin/yaml.vim7
2 files changed, 37 insertions, 0 deletions
diff --git a/runtime/compiler/rime_deployer.vim b/runtime/compiler/rime_deployer.vim
new file mode 100644
index 0000000000..e0c8daef6e
--- /dev/null
+++ b/runtime/compiler/rime_deployer.vim
@@ -0,0 +1,30 @@
+" Vim Compiler File
+" Language: rime_deployer
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+" URL: https://rime.im
+" Latest Revision: 2024-04-09
+
+if exists('b:current_compiler')
+ finish
+endif
+let b:current_compiler = 'rime_deployer'
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+" Android Termux
+let s:prefix = getenv('PREFIX')
+if s:prefix == v:null
+ let s:prefix = '/usr'
+endif
+" Android, NixOS, GNU/Linux, BSD
+for s:shared_data_dir in ['/sdcard/rime-data', '/run/current-system/sw/share/rime-data', '/usr/local/share/rime-data', s:prefix . '/share/rime-data']
+ if isdirectory(s:shared_data_dir)
+ break
+ endif
+endfor
+execute 'CompilerSet makeprg=rime_deployer\ --build\ %:p:h:S\' s:shared_data_dir
+unlet s:prefix s:shared_data_dir
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index db7cbd7ddb..8bfc45e4c8 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -16,6 +16,13 @@ let b:undo_ftplugin = "setl com< cms< et< fo<"
setlocal comments=:# commentstring=#\ %s expandtab
setlocal formatoptions-=t formatoptions+=croql
+" rime input method engine uses `*.custom.yaml` as its config files
+if expand('%:r:e') ==# 'custom'
+ compiler rime_deployer
+ setlocal include=__include:\\s*
+ let b:undo_ftplugin ..= " inc<"
+endif
+
if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0
let b:undo_ftplugin ..= " sw< sts<"
setlocal shiftwidth=2 softtabstop=2