ViEmu 3.8.1 on all editions (and farewell, Xcode)
After releasing ViEmu for Visual Studio 3.8.0 last year on the Visual Studio Gallery online (which ensured automatic updates), I have built and released the new ViEmu 3.8.1 in all editions here on the web site. The VS version will go to the gallery too. It does not incorporate too many things: the Visual Studio version avoids an exception warning that was being shown by VS when opening a project with open text files, which didn’t have any effect beyond you having to click “Ok”, but was annoying anyway. Also, all editions incorporate an improved emulation of :s commands, such that they emulate empty search strings handling better (:s//xyz will now use the last search pattern for the substitution command).
In the sad news department, I have officially stopped ViEmu support for Xcode. It’s especially personally sad because my main system in the last few years has been a MacBook Air, and the ViEmu I was using the most, ViEmu for Xcode. Each new version of Xcode makes it harder and harder to keep things working, from enforcing ever stricter security mechanisms, to actually rebuilding the whole text editor component in Swift, which is much harder to intercept than Objective C. There is Xvim, which I haven’t actually tried, but plan to try at some point – from outside, it does seem a bit rough on the edges. I have some ideas on how to get ViEmu emulation back on Xcode in the future in a more convenient way, but this needs a lot of work, so it will have to wait a bit.
[UPDATE: I forgot to describe the issue with VS2017, which I meant to. Here it is: the initialization ViEmu needs to do when a new text view is created (for example, when a source file is opened), includes retrieving the font size at the cursor position, to create a vi/vim-like block caret of the right size. Starting with a recent update of VS2017, the view is not fully initialized when this “TextViewCreated” notification is sent out to plug-ins such as ViEmu, and thus some operations can fail. ViEmu does have a try/catch block around the whole thing to avoid issues, but even then, VS decides to report it to the user. The new version checks whether the view is fully initialized (basically, whether the formatted text info is actually available), sidestepping the annoying warning.]