;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------- (require 'cl-lib) (cl-pushnew "." load-path :test #'string=) (require 'luki-lisp) ;; -------------------------------------------------------------------------- (-> 'tramp) ;; -------------------------------------------------------------------------- (defun delete-current-file () (i) (when-let* ((f (buffer-file-name)) (p (yes-or-no-p (@f "delete %s on disk? " f)))) (kill-buffer) (delete-file f))) (defalias 'delete-this-file #'delete-current-file) ;; -------------------------------------------------------------------------- (defun make-executable () (i) (shell-command (@f "chmod +x %s" buffer-file-name))) (defun message-permissions () (i) ($ "%s" (tramp-file-mode-from-int (file-modes buffer-file-name)))) ;; -------------------------------------------------------------------------- (defun find-file-at-line (&optional other-window) (interactive "P") (let ((possible-filename (thing-at-point 'filename 'no-properties)) (find-fun (if other-window #'find-file-other-window #'find-file))) (if (& possible-filename (file-exists-p possible-filename)) (funcall find-fun possible-filename) (forward-char) (find-file-at-line)))) ;; -------------------------------------------------------------------------- (<- 'll-file)