aboutsummaryrefslogtreecommitdiff
path: root/autoload/prettier.vim
diff options
context:
space:
mode:
authorMitermayer Reis <mitermayer.reis@gmail.com>2017-11-02 11:46:28 -0700
committerGitHub <noreply@github.com>2017-11-02 11:46:28 -0700
commit327fc0ccf42c5e9c27fb835018f449f79240c0f8 (patch)
tree7fae4f13baf7c79bb0249e723fa06ae0e6221126 /autoload/prettier.vim
parente099265f89ccaf7c5c29c6fe6746e810585fd3d2 (diff)
parente386a3a991e8b1ac7f97082996bd9626d1e7beb9 (diff)
downloadvim-prettier-327fc0ccf42c5e9c27fb835018f449f79240c0f8.tar.xz
Merge pull request #74 from neoclide/master
Add shellescape for file path
Diffstat (limited to 'autoload/prettier.vim')
-rw-r--r--autoload/prettier.vim20
1 files changed, 19 insertions, 1 deletions
diff --git a/autoload/prettier.vim b/autoload/prettier.vim
index 783e527..d929ff8 100644
--- a/autoload/prettier.vim
+++ b/autoload/prettier.vim
@@ -256,7 +256,7 @@ function! s:Get_Prettier_Exec_Args(config) abort
\ ' --config-precedence ' .
\ get(a:config, 'configPrecedence', g:prettier#config#config_precedence) .
\ ' --stdin-filepath ' .
- \ simplify(expand("%:p")) .
+ \ prettier#Escape(simplify(expand("%:p"))) .
\ ' --stdin '
return l:cmd
endfunction
@@ -355,3 +355,21 @@ endfunction
function! s:Suggest_Install_Prettier() abort
echohl WarningMsg | echom 'Prettier: no prettier executable installation found.' | echohl NONE
endfunction
+
+" Borrowed from https://github.com/w0rp/ale/blob/master/autoload/ale.vim
+function! prettier#Escape(str) abort
+ if fnamemodify(&shell, ':t') is? 'cmd.exe'
+ " If the string contains spaces, it will be surrounded by quotes.
+ " Otherwise, special characters will be escaped with carets (^).
+ return substitute(
+ \ a:str =~# ' '
+ \ ? '"' . substitute(a:str, '"', '""', 'g') . '"'
+ \ : substitute(a:str, '\v([&|<>^])', '^\1', 'g'),
+ \ '%',
+ \ '%%',
+ \ 'g',
+ \)
+ endif
+
+ return shellescape (a:str)
+endfunction