;;; open-in-msvs.el --- Open current file:line:column in Microsoft Visual Studio -*- lexical-binding: t; -*- ;; Copyright (C) 2016 Evgeny Panasyuk ;; Author: Evgeny Panasyuk ;; URL: https://github.com/evgeny-panasyuk/open-in-msvs ;; Version: 0.2 ;; Keywords: convenience, usability, integration, Visual Studio, MSVS, IDE ;;; License: ;; Permission is hereby granted, free of charge, to any person or organization ;; obtaining a copy of the software and accompanying documentation covered by ;; this license (the "Software") to use, reproduce, display, distribute, ;; execute, and transmit the Software, and to prepare derivative works of the ;; Software, and to permit third-parties to whom the Software is furnished to ;; do so, all subject to the following: ;; ;; The copyright notices in the Software and this entire statement, including ;; the above license grant, this restriction and the following disclaimer, ;; must be included in all copies of the Software, in whole or in part, and ;; all derivative works of the Software, unless such copies or derivative ;; works are solely in the form of machine-executable object code generated by ;; a source language processor. ;; ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;; FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT ;; SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE ;; FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ;; ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ;; DEALINGS IN THE SOFTWARE. ;;; Commentary: ;; Opens current file:line:column within active instance of Visual Studio or ;; starts new one. ;; ;; Bind the following command: ;; open-in-msvs ;;; Code: (defvar open-in-msvs--path-to-vbs (concat (file-name-directory load-file-name) "open-in-msvs.vbs")) ;; Main function ;;;###autoload (defun open-in-msvs () "Opens current file:line:column within active instance of Visual Studio or start new one." (interactive) (save-restriction (widen) (call-process-shell-command (format "%s %s %d %d" (shell-quote-argument open-in-msvs--path-to-vbs) (shell-quote-argument (buffer-file-name)) (line-number-at-pos) (current-column)) nil nil nil))) (provide 'open-in-msvs) ;;; open-in-msvs.el ends here