diff options
-rw-r--r-- | runtime/plugin/gui_shim.vim | 73 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 1 | ||||
-rw-r--r-- | third-party/CMakeLists.txt | 3 |
3 files changed, 74 insertions, 3 deletions
diff --git a/runtime/plugin/gui_shim.vim b/runtime/plugin/gui_shim.vim new file mode 100644 index 0000000000..28d82eb1c7 --- /dev/null +++ b/runtime/plugin/gui_shim.vim @@ -0,0 +1,73 @@ +" A Neovim plugin that implements GUI helper commands +if !has('win32') || !has('nvim') || exists('g:GuiLoaded') + finish +endif +let g:GuiLoaded = 1 + +" A replacement for foreground() +function! GuiForeground() abort + call rpcnotify(0, 'Gui', 'Foreground') +endfunction + +" Set maximized state for GUI window (1 is enabled, 0 disabled) +function! GuiWindowMaximized(enabled) abort + call rpcnotify(0, 'Gui', 'WindowMaximized', a:enabled) +endfunction + +" Set fullscreen state for GUI window (1 is enabled, 0 disabled) +function! GuiWindowFullScreen(enabled) abort + call rpcnotify(0, 'Gui', 'WindowFullScreen', a:enabled) +endfunction + +" Set GUI font +function! GuiFont(fname, ...) abort + let force = get(a:000, 0, 0) + call rpcnotify(0, 'Gui', 'Font', a:fname, force) +endfunction + +" Set additional linespace +function! GuiLinespace(height) abort + call rpcnotify(0, 'Gui', 'Linespace', a:height) +endfunction + +" Configure mouse hide behaviour (1 is enabled, 0 disabled) +function! GuiMousehide(enabled) abort + call rpcnotify(0, 'Gui', 'Mousehide', a:enabled) +endfunction + +" The GuiFont command. For compatibility there is also Guifont +function s:GuiFontCommand(fname, bang) abort + if a:fname ==# '' + if exists('g:GuiFont') + echo g:GuiFont + else + echo 'No GuiFont is set' + endif + else + call GuiFont(a:fname, a:bang ==# '!') + endif +endfunction +command! -nargs=? -bang Guifont call s:GuiFontCommand("<args>", "<bang>") +command! -nargs=? -bang GuiFont call s:GuiFontCommand("<args>", "<bang>") + +function s:GuiLinespaceCommand(height) abort + if a:height ==# '' + if exists('g:GuiLinespace') + echo g:GuiLinespace + else + echo 'No GuiLinespace is set' + endif + else + call GuiLinespace(a:height) + endif +endfunction +command! -nargs=? GuiLinespace call s:GuiLinespaceCommand("<args>") + +" GuiDrop('file1', 'file2', ...) is similar to :drop file1 file2 ... +" but it calls fnameescape() over all arguments +function GuiDrop(...) + let l:fnames = deepcopy(a:000) + let l:args = map(l:fnames, 'fnameescape(v:val)') + exec 'drop '.join(l:args, ' ') + doautocmd BufEnter +endfunction diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index b2a6966642..df596ea3d6 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -334,7 +334,6 @@ if(WIN32) COMMAND ${CMAKE_COMMAND} -E copy "${DEPS_PREFIX}/bin/platforms/qwindows.dll" ${PROJECT_BINARY_DIR}/windows_runtime_deps/platforms/ ) - add_dependencies(nvim_runtime_deps external_blobs) endif() diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index b3ad3cc427..1810794ee9 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -187,8 +187,7 @@ if(WIN32) INSTALL_COMMAND ${CMAKE_COMMAND} -E copy win32yank.exe ${DEPS_INSTALL_DIR}/bin) GetBinaryDep(TARGET wingui - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory bin ${DEPS_INSTALL_DIR}/bin - COMMAND ${CMAKE_COMMAND} -E copy_directory share/nvim-qt/runtime ${DEPS_INSTALL_DIR}/share/nvim/runtime) + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory bin ${DEPS_INSTALL_DIR}/bin) include(TargetArch) if("${TARGET_ARCH}" STREQUAL "X86_64") |