aboutsummaryrefslogtreecommitdiffstats
path: root/oni-counsel.el
diff options
context:
space:
mode:
authorGravatar Tom Willemse2019-07-24 08:12:15 -0700
committerGravatar Tom Willemse2019-07-24 08:12:15 -0700
commit53d104a44b3043eba31bae1c3097c665e9f5bb31 (patch)
tree852e8b05e925b9c482b836053944e9be2bc0370b /oni-counsel.el
parentca72f6b1729187a3ad02644786846ab76f286399 (diff)
downloademacs-config-53d104a44b3043eba31bae1c3097c665e9f5bb31.tar.gz
emacs-config-53d104a44b3043eba31bae1c3097c665e9f5bb31.zip
Add extra command for ‘counsel-find-file’ to create file
When working on the exercises of the book I’m currently reading, I always have to open a file, save it (to create the directory and file) and then revert the file just so that ‘lsp-mode’ can connect to the server. With this command I can have that done before I open the file.
Diffstat (limited to 'oni-counsel.el')
-rw-r--r--oni-counsel.el12
1 files changed, 11 insertions, 1 deletions
diff --git a/oni-counsel.el b/oni-counsel.el
index 2c4349c..fe833f9 100644
--- a/oni-counsel.el
+++ b/oni-counsel.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 20190409004833
+;; Version: 20190724081053
;; Package-Requires: (counsel diminish helpful)
;; This program is free software; you can redistribute it and/or modify
@@ -29,6 +29,12 @@
(require 'counsel)
(require 'diminish)
+(defun oni-counsel-create-directory-and-file (filename)
+ "Create the directory and file of FILENAME before opening."
+ (mkdir (file-name-directory filename) t)
+ (write-region "" nil filename t)
+ (find-file filename))
+
(setq counsel-find-file-ignore-regexp
(rx (or (and bos ".")
(and ".zwc" eos))))
@@ -38,6 +44,10 @@
(setq counsel-describe-function-function 'helpful-callable)
(setq counsel-describe-variable-function 'helpful-variable)
+(ivy-add-actions
+ 'counsel-find-file
+ '(("C" oni-counsel-create-directory-and-file "create")))
+
;;;###autoload(with-eval-after-load 'counsel (require 'oni-counsel))
;;;###autoload
(add-hook 'emacs-startup-hook 'counsel-mode)