Use unix slashes in the path of a possible exe to run
This commit is contained in:
parent
65500a66ea
commit
dc88f6cc36
32
.vimrc
32
.vimrc
|
@ -1069,6 +1069,24 @@ fu! CountChar(str, char) abort
|
||||||
return strlen(l:filtered)
|
return strlen(l:filtered)
|
||||||
endfu
|
endfu
|
||||||
|
|
||||||
|
fu! WindowsToUnixPath(str) abort
|
||||||
|
let l:result = substitute(a:str, '\\', '/', 'g')
|
||||||
|
return l:result
|
||||||
|
endfu
|
||||||
|
|
||||||
|
fu! ConvertQuickfixPathsToUnixSlashes()
|
||||||
|
let l:qflist = getqflist()
|
||||||
|
for i in range(len(l:qflist))
|
||||||
|
let l:bufnr = l:qflist[i]['bufnr']
|
||||||
|
if l:bufnr != -1 && bufexists(l:bufnr)
|
||||||
|
let l:filename = bufname(l:bufnr)
|
||||||
|
let l:filename = substitute(l:filename, '\\', '/', 'g')
|
||||||
|
let l:qflist[i]['module'] = l:filename
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call setqflist(l:qflist)
|
||||||
|
endfu
|
||||||
|
|
||||||
"##################################################################################
|
"##################################################################################
|
||||||
" COMPILING CODE
|
" COMPILING CODE
|
||||||
"##################################################################################
|
"##################################################################################
|
||||||
|
@ -1290,19 +1308,24 @@ fu! RunProgram() abort
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let l:file_exe_name = expand('%:t:r').'.exe' " Just the filename without the path
|
" Sometimes vim mixes unix and windows slashes so we need to normalize and
|
||||||
|
" use this in future fnamemodify calls (can't use expand with a string
|
||||||
|
" that doesn't contain wildcards).
|
||||||
|
let l:full_path = WindowsToUnixPath(expand('%'))
|
||||||
|
|
||||||
|
let l:file_exe_name = fnamemodify(l:full_path, ':t:r').'.exe' " Just the filename without the path
|
||||||
|
|
||||||
" Easy case is the current file has an exe with the same name in the
|
" Easy case is the current file has an exe with the same name in the
|
||||||
" same directory. We run that if found.
|
" same directory. We run that if found.
|
||||||
if filereadable(expand('%:p:h') . '/' . l:file_exe_name)
|
if filereadable(fnamemodify(l:full_path, ':p:h') . '/' . l:file_exe_name)
|
||||||
exec 'AsyncRun! ' . expand('%:p:h') . '/' . l:file_exe_name
|
exec 'AsyncRun! ' . fnamemodify(l:full_path, ':p:h') . '/' . l:file_exe_name
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" We start by looking for something to run relative to the current file's
|
" We start by looking for something to run relative to the current file's
|
||||||
" path. If nothing is found then we start over looking in the current
|
" path. If nothing is found then we start over looking in the current
|
||||||
" working directory (the directory vim was opened in).
|
" working directory (the directory vim was opened in).
|
||||||
let l:current_path = expand('%:p:h')
|
let l:current_path = fnamemodify(l:full_path, ':p:h')
|
||||||
|
|
||||||
if !RunProgramInDirectory(l:current_path, l:file_exe_name)
|
if !RunProgramInDirectory(l:current_path, l:file_exe_name)
|
||||||
let l:cwd = getcwd()
|
let l:cwd = getcwd()
|
||||||
|
@ -1314,7 +1337,6 @@ endfu
|
||||||
|
|
||||||
|
|
||||||
fu! RunProgramInDirectory(starting_path, file_exe_name) abort
|
fu! RunProgramInDirectory(starting_path, file_exe_name) abort
|
||||||
|
|
||||||
let l:search_path = a:starting_path
|
let l:search_path = a:starting_path
|
||||||
let l:ext = tolower(expand('%:e'))
|
let l:ext = tolower(expand('%:e'))
|
||||||
let l:also_search_for_cpp_run_script = 0 " Covers the case of having a run-cpp file in a jai project.
|
let l:also_search_for_cpp_run_script = 0 " Covers the case of having a run-cpp file in a jai project.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user