diff options
44 files changed, 13 insertions, 3298 deletions
@@ -590,30 +590,9 @@ SRC_DOS = \ nsis/README.txt \ nsis/lang/*.nsi \ uninstall.txt \ - src/VisVim/Commands.cpp \ - src/VisVim/Commands.h \ - src/VisVim/DSAddIn.cpp \ - src/VisVim/DSAddIn.h \ - src/VisVim/OleAut.cpp \ - src/VisVim/OleAut.h \ - src/VisVim/README_VisVim.txt \ - src/VisVim/Reg.cpp \ - src/VisVim/Register.bat \ - src/VisVim/Resource.h \ - src/VisVim/StdAfx.cpp \ - src/VisVim/StdAfx.h \ - src/VisVim/UnRegist.bat \ - src/VisVim/VisVim.cpp \ - src/VisVim/VisVim.def \ - src/VisVim/VisVim.mak \ - src/VisVim/VisVim.h \ - src/VisVim/VisVim.odl \ - src/VisVim/VisVim.rc \ - src/VisVim/VsReadMe.txt \ # source files for DOS without CR/LF translation (also in the extra archive) SRC_DOS_BIN = \ - src/VisVim/Res/*.bmp \ src/tearoff.bmp \ src/tools.bmp \ src/vim*.ico \ @@ -945,7 +924,6 @@ EXTRA = \ $(RT_EXTRA) \ $(SRC_EXTRA) \ README_extra.txt \ - src/VisVim/VisVim.dll \ runtime/vimlogo.xpm \ # files in READMEdir that are included from the top dir @@ -198,8 +198,6 @@ MINOR = 0 # - copy these files (get them from a binary archive or build them): # gvimext.dll in src/GvimExt # gvimext64.dll in src/GvimExt -# VisVim.dll in src/VisVim -# Note: VisVim needs to be build with MSVC 5, newer versions don't work. # gvimext64.dll can be obtained from: # https://github.com/vim/vim-win32-installer/releases # It is part of gvim_9.0.*_x64.zip as vim/vim90/GvimExt/gvimext64.dll. @@ -554,8 +552,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE) cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll cp README_ole.txt dist/vim/$(VIMRTDIR) - cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll - cp src/VisVim/README_VisVim.txt dist/vim/$(VIMRTDIR) cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE) cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb diff --git a/READMEdir/README_extra.txt b/READMEdir/README_extra.txt index d1a8b71bc9..f67dbdb6d2 100644 --- a/READMEdir/README_extra.txt +++ b/READMEdir/README_extra.txt @@ -29,9 +29,6 @@ src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI. src/if_ole.* OLE automation interface, for MS Windows 95 and NT. -src/VisVim/* Integration of Win32 GUI with MS Visual Developer - Studio. - src/GvimExt/* DLL for the "Edit with Vim" context menu entry nsis/* NSIS script to build the self-installing MS-Windows exe diff --git a/READMEdir/README_ole.txt b/READMEdir/README_ole.txt index b45a0c2de2..85ad478e51 100644 --- a/READMEdir/README_ole.txt +++ b/READMEdir/README_ole.txt @@ -1,6 +1,6 @@ README_ole.txt for version 9.0 of Vim: Vi IMproved. -This archive contains gvim.exe with OLE interface and VisVim. +This archive contains gvim.exe with OLE interface. This version of gvim.exe can also load a number of interface dynamically (you can optionally install the .dll files for each interface). It is only for MS-Windows 95/98/ME/NT/2000/XP. @@ -15,6 +15,3 @@ Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support" For further information, type this inside Vim: :help if_ole - -Furthermore, this archive contains VISVIM.DLL. It can be used to integrate -the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt. diff --git a/READMEdir/README_srcdos.txt b/READMEdir/README_srcdos.txt index 2bef9deb9b..a5fd9feeb8 100644 --- a/READMEdir/README_srcdos.txt +++ b/READMEdir/README_srcdos.txt @@ -6,7 +6,6 @@ These files are in the runtime archive (vim90rt.zip). The DOS source archive contains the files needed to compile Vim on MS-Windows. -It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim -sources. +It is packed for MS-Windows systems, with CR-LF. See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC. diff --git a/nsis/README.txt b/nsis/README.txt index 2760609e09..31fa7871b9 100644 --- a/nsis/README.txt +++ b/nsis/README.txt @@ -27,23 +27,20 @@ To build the installable .exe: 64-bit: src/GvimExt/gvimext64.dll 32-bit: src/GvimExt/gvimext.dll -4. Go to the VisVim directory and build VisVim.dll (or get it from a binary - archive). - -5. Get a "diff.exe" program. If you skip this the built-in diff will always +4. Get a "diff.exe" program. If you skip this the built-in diff will always be used (which is fine for most users). If you do have your own "diff.exe" put it in the "../.." directory (above the "vim82" directory, it's the same for all Vim versions). You can find one in previous Vim versions or in this archive: http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz -6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82" +5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82" directory). This is required for the terminal window. -7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have +6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have to do this on Unix. Make sure the file is in DOS file format! -8. Get gettext and iconv DLLs from the following site: +7. Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases Both 64- and 32-bit versions are needed. Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index 4d2479a516..64c1bc76c5 100644 --- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -36,9 +36,6 @@ Unicode true # Comment the next line if you do not want to add Native Language Support !define HAVE_NLS -# Uncomment the next line if you want to include VisVim extension: -#!define HAVE_VIS_VIM - # Comment the following line to create an English-only installer: !define HAVE_MULTI_LANG @@ -55,9 +52,6 @@ Unicode true # ----------- No configurable settings below this line ----------- !include "Library.nsh" # For DLL install -!ifdef HAVE_VIS_VIM - !include "UpgradeDLL.nsh" # for VisVim.dll -!endif !include "LogicLib.nsh" !include "MUI2.nsh" !include "nsDialogs.nsh" @@ -537,17 +531,6 @@ SectionGroup $(str_group_plugin) id_group_plugin SectionGroupEnd ########################################################## -!ifdef HAVE_VIS_VIM -Section "$(str_section_vis_vim)" id_section_visvim - SectionIn 3 - - SetOutPath $0 - !insertmacro UpgradeDLL "${VIMSRC}\VisVim\VisVim.dll" "$0\VisVim.dll" "$0" - File ${VIMSRC}\VisVim\README_VisVim.txt -SectionEnd -!endif - -########################################################## !ifdef HAVE_NLS Section "$(str_section_nls)" id_section_nls SectionIn 1 3 @@ -634,12 +617,6 @@ Section -post SectionGetSize ${id_section_editwith} $4 IntOp $3 $3 + $4 ${EndIf} -!ifdef HAVE_VIS_VIM - ${If} ${SectionIsSelected} ${id_section_visvim} - SectionGetSize ${id_section_visvim} $4 - IntOp $3 $3 + $4 - ${EndIf} -!endif !ifdef HAVE_NLS ${If} ${SectionIsSelected} ${id_section_nls} SectionGetSize ${id_section_nls} $4 @@ -670,9 +647,6 @@ Section -post !insertmacro SaveSectionSelection ${id_section_vimrc} "select_vimrc" !insertmacro SaveSectionSelection ${id_section_pluginhome} "select_pluginhome" !insertmacro SaveSectionSelection ${id_section_pluginvim} "select_pluginvim" -!ifdef HAVE_VIS_VIM - !insertmacro SaveSectionSelection ${id_section_visvim} "select_visvim" -!endif !ifdef HAVE_NLS !insertmacro SaveSectionSelection ${id_section_nls} "select_nls" !endif @@ -744,9 +718,6 @@ Function .onInit !insertmacro LoadSectionSelection ${id_section_vimrc} "select_vimrc" !insertmacro LoadSectionSelection ${id_section_pluginhome} "select_pluginhome" !insertmacro LoadSectionSelection ${id_section_pluginvim} "select_pluginvim" -!ifdef HAVE_VIS_VIM - !insertmacro LoadSectionSelection ${id_section_visvim} "select_visvim" -!endif !ifdef HAVE_NLS !insertmacro LoadSectionSelection ${id_section_nls} "select_nls" !endif @@ -921,9 +892,6 @@ FunctionEnd !insertmacro MUI_DESCRIPTION_TEXT ${id_group_plugin} $(str_desc_plugin) !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginhome} $(str_desc_plugin_home) !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginvim} $(str_desc_plugin_vim) -!ifdef HAVE_VIS_VIM - !insertmacro MUI_DESCRIPTION_TEXT ${id_section_visvim} $(str_desc_vis_vim) -!endif !ifdef HAVE_NLS !insertmacro MUI_DESCRIPTION_TEXT ${id_section_nls} $(str_desc_nls) !endif @@ -947,13 +915,6 @@ Section "un.$(str_unsection_register)" id_unsection_register # created. Thus the "vim61" directory is included in it. StrCpy $0 "$INSTDIR" -!ifdef HAVE_VIS_VIM - # If VisVim was installed, unregister the DLL. - ${If} ${FileExists} "$0\VisVim.dll" - ExecWait "regsvr32.exe /u /s $0\VisVim.dll" - ${EndIf} -!endif - # delete the context menu entry and batch files DetailPrint "$(str_msg_unregistering)" nsExec::Exec "$0\uninstall.exe -nsis" @@ -1046,9 +1007,6 @@ Section "un.$(str_unsection_exe)" id_unsection_exe RMDir /r $0\syntax RMDir /r $0\tools RMDir /r $0\tutor -!ifdef HAVE_VIS_VIM - RMDir /r $0\VisVim -!endif RMDir /r $0\lang RMDir /r $0\keymap Delete $0\*.exe diff --git a/nsis/lang/danish.nsi b/nsis/lang/danish.nsi index 3f792bc87b..b365413c1d 100644 --- a/nsis/lang/danish.nsi +++ b/nsis/lang/danish.nsi @@ -79,9 +79,6 @@ LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HO LangString str_section_plugin_vim ${LANG_DANISH} "Delte" LangString str_desc_plugin_vim ${LANG_DANISH} "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet." -LangString str_section_vis_vim ${LANG_DANISH} "VisVim-udvidelser" -LangString str_desc_vis_vim ${LANG_DANISH} "VisVim-udvidelser til integrering i Microsoft Visual Studio." - LangString str_section_nls ${LANG_DANISH} "Understøttelse af modersmål" LangString str_desc_nls ${LANG_DANISH} "Installer filer til understøttelse af modersmål." diff --git a/nsis/lang/dutch.nsi b/nsis/lang/dutch.nsi index cf861d4787..1d1322411e 100644 --- a/nsis/lang/dutch.nsi +++ b/nsis/lang/dutch.nsi @@ -123,11 +123,6 @@ LangString str_desc_plugin_vim ${LANG_DUTCH} \ "Creëer plugin mappen in Vim installatie map, deze worden gebruikt \ voor iedereen op het systeem." -LangString str_section_vis_vim ${LANG_DUTCH} \ - "VisVim extensie" -LangString str_desc_vis_vim ${LANG_DUTCH} \ - "VisVim extensie voor Microsoft Visual Studio integratie." - LangString str_section_nls ${LANG_DUTCH} \ "Ondersteuning voor andere talen" LangString str_desc_nls ${LANG_DUTCH} \ diff --git a/nsis/lang/english.nsi b/nsis/lang/english.nsi index 218c70a47c..e1be985e15 100644 --- a/nsis/lang/english.nsi +++ b/nsis/lang/english.nsi @@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_ENGLISH} \ "Create plugin directories in Vim install directory, it is used for \ everybody on the system." -LangString str_section_vis_vim ${LANG_ENGLISH} \ - "VisVim Extension" -LangString str_desc_vis_vim ${LANG_ENGLISH} \ - "VisVim Extension for Microsoft Visual Studio integration." - LangString str_section_nls ${LANG_ENGLISH} \ "Native Language Support" LangString str_desc_nls ${LANG_ENGLISH} \ diff --git a/nsis/lang/german.nsi b/nsis/lang/german.nsi index 8c1e4ac414..b976ef4a2f 100644 --- a/nsis/lang/german.nsi +++ b/nsis/lang/german.nsi @@ -122,11 +122,6 @@ LangString str_desc_plugin_vim ${LANG_GERMAN} \ "Plugin-Verzeichnisse im Vim-Installationsverzeichnis erstellen. Diese werden \ für alle Benutzer dieses Systems genutzt." -LangString str_section_vis_vim ${LANG_GERMAN} \ - "VisVim-Erweiterung" -LangString str_desc_vis_vim ${LANG_GERMAN} \ - "VisVim-Erweiterung zur Integration in Microsoft Visual Studio." - LangString str_section_nls ${LANG_GERMAN} \ "Unterstützung für andere Sprachen" LangString str_desc_nls ${LANG_GERMAN} \ diff --git a/nsis/lang/italian.nsi b/nsis/lang/italian.nsi index b90e0986cb..bffe285a76 100644 --- a/nsis/lang/italian.nsi +++ b/nsis/lang/italian.nsi @@ -123,11 +123,6 @@ LangString str_desc_plugin_vim ${LANG_ITALIAN} \ "Crea directory per plugin nella directory di installazione di Vim \ per uso da parte di tutti gli utenti di questo sistema." -LangString str_section_vis_vim ${LANG_ITALIAN} \ - "Estensione VisVim" -LangString str_desc_vis_vim ${LANG_ITALIAN} \ - "Estensione VisVim per integrazione con Microsoft Visual Studio." - LangString str_section_nls ${LANG_ITALIAN} \ "Supporto Multilingue (NLS)" LangString str_desc_nls ${LANG_ITALIAN} \ diff --git a/nsis/lang/japanese.nsi b/nsis/lang/japanese.nsi index e5e1a9ad3e..58f4dccc1b 100644 --- a/nsis/lang/japanese.nsi +++ b/nsis/lang/japanese.nsi @@ -128,11 +128,6 @@ LangString str_section_plugin_vim ${LANG_JAPANESE} \ LangString str_desc_plugin_vim ${LANG_JAPANESE} \ "プラグインディレクトリを Vim のインストールディレクトリに作成します。システムの全員で共有されます。" -LangString str_section_vis_vim ${LANG_JAPANESE} \ - "VisVim 拡張" -LangString str_desc_vis_vim ${LANG_JAPANESE} \ - "Microsoft Visual Studio 統合用の VisVim 拡張。" - LangString str_section_nls ${LANG_JAPANESE} \ "多言語サポート" LangString str_desc_nls ${LANG_JAPANESE} \ diff --git a/nsis/lang/russian.nsi b/nsis/lang/russian.nsi index 23458ce4c8..e4512081a9 100644 --- a/nsis/lang/russian.nsi +++ b/nsis/lang/russian.nsi @@ -125,11 +125,6 @@ LangString str_desc_plugin_vim ${LANG_RUSSIAN} \ Модули в этом каталоге будут доступны для любого пользователя \ зарегистрировавшегося в системе" -LangString str_section_vis_vim ${LANG_RUSSIAN} \ - "Подключаемый модуль VisVim" -LangString str_desc_vis_vim ${LANG_RUSSIAN} \ - "Подключаемый модуль VisVim используется для интеграции с Microsoft Visual Studio" - LangString str_section_nls ${LANG_RUSSIAN} \ "Поддержка региональных языков" LangString str_desc_nls ${LANG_RUSSIAN} \ diff --git a/nsis/lang/serbian.nsi b/nsis/lang/serbian.nsi index 60170da52c..9912ec5df8 100644 --- a/nsis/lang/serbian.nsi +++ b/nsis/lang/serbian.nsi @@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_SERBIAN} \ "Креира директоријуме додатака у Vim инсталационом директоријуму, користе их сви \ на систему." -LangString str_section_vis_vim ${LANG_SERBIAN} \ - "VisVim проширење" -LangString str_desc_vis_vim ${LANG_SERBIAN} \ - "VisVim проширење за Microsoft Visual Studio интеграцију." - LangString str_section_nls ${LANG_SERBIAN} \ "Подршка за домаћи језик" LangString str_desc_nls ${LANG_SERBIAN} \ diff --git a/nsis/lang/simpchinese.nsi b/nsis/lang/simpchinese.nsi index a6875a79cc..2c80054d19 100644 --- a/nsis/lang/simpchinese.nsi +++ b/nsis/lang/simpchinese.nsi @@ -120,11 +120,6 @@ LangString str_desc_plugin_vim ${LANG_SIMPCHINESE} \ "在 Vim 安装目录下创建(空的)插件目录结构,系统上所有用户都能使用安装在\ 该目录下的扩展插件。" -LangString str_section_vis_vim ${LANG_SIMPCHINESE} \ - "VisVim 插件" -LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \ - "安装与 Visual Studio 集成的 VisVim 插件。" - LangString str_section_nls ${LANG_SIMPCHINESE} \ "安装多语言支持" LangString str_desc_nls ${LANG_SIMPCHINESE} \ diff --git a/nsis/lang/tradchinese.nsi b/nsis/lang/tradchinese.nsi index c273230a57..16b6747c20 100644 --- a/nsis/lang/tradchinese.nsi +++ b/nsis/lang/tradchinese.nsi @@ -121,11 +121,6 @@ LangString str_desc_plugin_vim ${LANG_TRADCHINESE} \ "在 Vim 安裝資料夾下建立(空的)插件資料夾結構,電腦上所有用戶都能使用安裝\ 在該資料夾里的擴展插件。" -LangString str_section_vis_vim ${LANG_TRADCHINESE} \ - "安裝 VisVim 插件" -LangString str_desc_vis_vim ${LANG_TRADCHINESE} \ - "VisVim 是用于與微軟 Microsoft Visual Studio 軟體進行整合的插件。" - LangString str_section_nls ${LANG_TRADCHINESE} \ "安裝本地語言支持" LangString str_desc_nls ${LANG_TRADCHINESE} \ diff --git a/nsis/lang/turkish.nsi b/nsis/lang/turkish.nsi index 4c966c5034..1046b8195d 100644 --- a/nsis/lang/turkish.nsi +++ b/nsis/lang/turkish.nsi @@ -90,11 +90,6 @@ LangString str_desc_plugin_vim ${LANG_TURKISH} \ "Eklenti dizinlerini Vim yükleme dizininde oluşturur. Bu eklentilerden \ bilgisayarın tüm kullanıcıları yararlanabilir." -LangString str_section_vis_vim ${LANG_TURKISH} \ - "VisVim eklentisi" -LangString str_desc_vis_vim ${LANG_TURKISH} \ - "Microsoft Visual Studio entegrasyonu için VisVim eklentisi" - LangString str_section_nls ${LANG_TURKISH} \ "Ek dil desteği" LangString str_desc_nls ${LANG_TURKISH} \ diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt index 36d93333e5..9f899ddccc 100644 --- a/runtime/doc/if_ole.txt +++ b/runtime/doc/if_ole.txt @@ -1,4 +1,4 @@ -*if_ole.txt* For Vim version 9.0. Last change: 2019 Dec 07 +*if_ole.txt* For Vim version 9.0. Last change: 2022 Oct 08 VIM REFERENCE MANUAL by Paul Moore @@ -156,18 +156,14 @@ To avoid the message box that pops up to report the result, prepend "-silent": gvim -silent -unregister ============================================================================== -5. MS Visual Studio integration *MSVisualStudio* *VisVim* +5. MS Visual Studio integration *MSVisualStudio* -The OLE version can be used to run Vim as the editor in Microsoft Visual -Studio. This is called "VisVim". It is included in the archive that contains -the OLE version. The documentation can be found in the runtime directory, the -README_VisVim.txt file. +The old "VisVim" integration was removed from Vim in patch 9.0.0698. Using Vim with Visual Studio .Net~ -With .Net you no longer really need VisVim, since .Net studio has support for -external editors. Follow these directions: +.Net studio has support for external editors. Follow these directions: In .Net Studio choose from the menu Tools->External Tools... Add diff --git a/src/VisVim/Commands.cpp b/src/VisVim/Commands.cpp deleted file mode 100644 index d2c3f838c8..0000000000 --- a/src/VisVim/Commands.cpp +++ /dev/null @@ -1,710 +0,0 @@ -#include "stdafx.h" -#include <comdef.h> // For _bstr_t -#include "VisVim.h" -#include "Commands.h" -#include "OleAut.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; - -#endif - - -// Change directory before opening file? -#define CD_SOURCE 0 // Cd to source path -#define CD_SOURCE_PARENT 1 // Cd to parent directory of source path -#define CD_NONE 2 // No cd - - -static BOOL g_bEnableVim = TRUE; // Vim enabled -static BOOL g_bDevStudioEditor = FALSE; // Open file in Dev Studio editor simultaneously -static BOOL g_bNewTabs = FALSE; -static int g_ChangeDir = CD_NONE; // CD after file open? - -static void VimSetEnableState(BOOL bEnableState); -static BOOL VimOpenFile(BSTR& FileName, long LineNr); -static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method); -static void VimErrDiag(COleAutomationControl& VimOle); -static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName); -static void DebugMsg(char* Msg, char* Arg = NULL); - - -///////////////////////////////////////////////////////////////////////////// -// CCommands - -CCommands::CCommands() -{ - // m_pApplication == NULL; M$ Code generation bug!!! - m_pApplication = NULL; - m_pApplicationEventsObj = NULL; - m_pDebuggerEventsObj = NULL; -} - -CCommands::~CCommands() -{ - ASSERT(m_pApplication != NULL); - if (m_pApplication) - { - m_pApplication->Release(); - m_pApplication = NULL; - } -} - -void CCommands::SetApplicationObject(IApplication * pApplication) -{ - // This function assumes pApplication has already been AddRef'd - // for us, which CDSAddIn did in its QueryInterface call - // just before it called us. - m_pApplication = pApplication; - if (! m_pApplication) - return; - - // Create Application event handlers - XApplicationEventsObj::CreateInstance(&m_pApplicationEventsObj); - if (! m_pApplicationEventsObj) - { - ReportInternalError("XApplicationEventsObj::CreateInstance"); - return; - } - m_pApplicationEventsObj->AddRef(); - m_pApplicationEventsObj->Connect(m_pApplication); - m_pApplicationEventsObj->m_pCommands = this; - -#ifdef NEVER - // Create Debugger event handler - CComPtr < IDispatch > pDebugger; - if (SUCCEEDED(m_pApplication->get_Debugger(&pDebugger)) - && pDebugger != NULL) - { - XDebuggerEventsObj::CreateInstance(&m_pDebuggerEventsObj); - m_pDebuggerEventsObj->AddRef(); - m_pDebuggerEventsObj->Connect(pDebugger); - m_pDebuggerEventsObj->m_pCommands = this; - } -#endif - - // Get settings from registry HKEY_CURRENT_USER\Software\Vim\VisVim - HKEY hAppKey = GetAppKey("Vim"); - if (hAppKey) - { - HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim"); - if (hSectionKey) - { - g_bEnableVim = GetRegistryInt(hSectionKey, "EnableVim", - g_bEnableVim); - g_bDevStudioEditor = GetRegistryInt(hSectionKey, - "DevStudioEditor", g_bDevStudioEditor); - g_bNewTabs = GetRegistryInt(hSectionKey, "NewTabs", - g_bNewTabs); - g_ChangeDir = GetRegistryInt(hSectionKey, "ChangeDir", - g_ChangeDir); - RegCloseKey(hSectionKey); - } - RegCloseKey(hAppKey); - } -} - -void CCommands::UnadviseFromEvents() -{ - ASSERT(m_pApplicationEventsObj != NULL); - if (m_pApplicationEventsObj) - { - m_pApplicationEventsObj->Disconnect(m_pApplication); - m_pApplicationEventsObj->Release(); - m_pApplicationEventsObj = NULL; - } - -#ifdef NEVER - if (m_pDebuggerEventsObj) - { - // Since we were able to connect to the Debugger events, we - // should be able to access the Debugger object again to - // unadvise from its events (thus the VERIFY_OK below--see - // stdafx.h). - CComPtr < IDispatch > pDebugger; - VERIFY_OK(m_pApplication->get_Debugger(&pDebugger)); - ASSERT(pDebugger != NULL); - m_pDebuggerEventsObj->Disconnect(pDebugger); - m_pDebuggerEventsObj->Release(); - m_pDebuggerEventsObj = NULL; - } -#endif -} - - -///////////////////////////////////////////////////////////////////////////// -// Event handlers - -// Application events - -HRESULT CCommands::XApplicationEvents::BeforeBuildStart() -{ - AFX_MANAGE_STATE(AfxGetStaticModuleState()); - return S_OK; -} - -HRESULT CCommands::XApplicationEvents::BuildFinish(long nNumErrors, long nNumWarnings) -{ - AFX_MANAGE_STATE(AfxGetStaticModuleState()); - return S_OK; -} - -HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown() -{ - AFX_MANAGE_STATE(AfxGetStaticModuleState()); - return S_OK; -} - -// The open document event handle is the place where the real interface work -// is done. -// Vim gets called from here. -// -HRESULT CCommands::XApplicationEvents::DocumentOpen(IDispatch * theDocument) -{ - AFX_MANAGE_STATE(AfxGetStaticModuleState()); - - if (! g_bEnableVim) - // Vim not enabled or empty command line entered - return S_OK; - - // First get the current file name and line number - - // Get the document object - CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument); - if (! pDoc) - return S_OK; - - BSTR FileName; - long LineNr = -1; - - // Get the document name - if (FAILED(pDoc->get_FullName(&FileName))) - return S_OK; - - LPDISPATCH pDispSel; - - // Get a selection object dispatch pointer - if (SUCCEEDED(pDoc->get_Selection(&pDispSel))) - { - // Get the selection object - CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel); - - if (pSel) - // Get the selection line number - pSel->get_CurrentLine(&LineNr); - - pDispSel->Release(); - } - - // Open the file in Vim and position to the current line - if (VimOpenFile(FileName, LineNr)) - { - if (! g_bDevStudioEditor) - { - // Close the document in developer studio - CComVariant vSaveChanges = dsSaveChangesPrompt; - DsSaveStatus Saved; - - pDoc->Close(vSaveChanges, &Saved); - } - } - - // We're done here - SysFreeString(FileName); - return S_OK; -} - -HRESULT CCommands::XApplicationEvents::BeforeDocumentClose(IDispatch * theDocument) -{ - AFX_MANAGE_STATE(AfxGetStaticModuleState()); - return S_OK; -} |