diff options
-rw-r--r-- | init.el | 29 | ||||
-rw-r--r-- | lisp/km-snakemake.el | 53 |
2 files changed, 10 insertions, 72 deletions
@@ -1691,31 +1691,22 @@ :load-path "~/src/emacs/snakemake-mode/" :defer t :init - (require 'snakemake-mode-autoloads) - (autoload 'snakemake-compile-command "snakemake-mode") - (setq snakemake-compile-command-options '("-p")) + (require 'snakemake-autoloads) + (define-key km/compile-map "s" #'snakemake-popup) + (after 'dired + (define-key dired-mode-map "b" #'snakemake-popup)) :config + (setq snakemake-root-dir-function #'projectile-project-root) + (defun km/snakemake-set-local-vars () - (set (make-local-variable 'compile-command) - (snakemake-compile-command)) (set (make-local-variable 'imenu-create-index-function) #'snakemake-imenu-create-index)) - - ;; Although `compile-command' and `imenu-create-index-function' are - ;; set when snakemake-mode is derived from Python mode, I need to - ;; define them again here because I have a Python mode hook that - ;; overrides the Python versions. + ;; Although `imenu-create-index-function' is set when snakemake-mode + ;; is derived from Python mode, I need to define it again here + ;; because I have a Python mode hook that overrides the Python + ;; version. (add-hook 'snakemake-mode-hook #'km/snakemake-set-local-vars)) -(use-package km-snakemake - :defer t - :init - (bind-keys :map km/compile-map - ("b" . km/snakemake-compile-project-rule) - ("p" . km/snakemake-compile-project-file)) - (after 'dired - (define-key dired-mode-map "b" #'km/snakemake-compile-project-file))) - (use-package ess-site :mode ("\\.[rR]\\'" . R-mode) :config diff --git a/lisp/km-snakemake.el b/lisp/km-snakemake.el deleted file mode 100644 index 01fa7f1..0000000 --- a/lisp/km-snakemake.el +++ /dev/null @@ -1,53 +0,0 @@ -;;; km-snakemake.el --- Extensions for Snakemake mode - -;; Copyright (C) 2012-2016 Kyle Meyer <kyle@kyleam.com> - -;; Author: Kyle Meyer <kyle@kyleam.com> -;; URL: https://github.com/kyleam/emacs.d - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <http://www.gnu.org/licenses/>. - -;;; Code: - -(require 'projectile) -(require 'km-projectile) -(require 'snakemake-mode) - -;;;###autoload -(defun km/snakemake-compile-project-file (jobs) - "Run Snakemake to produce project file at point. -The numeric prefix JOBS controls the number of jobs that -Snakemake runs (defaults to 1). If JOBS is zero, perform a dry -run. If JOBS is negative, just touch the output files." - (interactive "p") - (let* ((fname (or (km/project-filename-at-point) - (read-file-name "File: "))) - (job-flag (cond - ((> jobs 0) (format " -j%s " jobs)) - ((zerop jobs) " -n ") - (t " -t "))) - (compile-command (concat (snakemake-compile-command) job-flag - fname)) - (default-directory (projectile-project-root))) - (call-interactively 'compile))) - -;;;###autoload -(defun km/snakemake-compile-project-rule () - "Run `snakemake-compile-rule' from project root." - (interactive) - (let ((default-directory (projectile-project-root))) - (call-interactively #'snakemake-compile-rule))) - -(provide 'km-snakemake) -;;; km-snakemake.el ends here |