diff options
Diffstat (limited to '.config/nyxt/commands.lisp')
-rw-r--r-- | .config/nyxt/commands.lisp | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/.config/nyxt/commands.lisp b/.config/nyxt/commands.lisp deleted file mode 100644 index c048935..0000000 --- a/.config/nyxt/commands.lisp +++ /dev/null @@ -1,136 +0,0 @@ -(in-package #:nyxt-user) - -(define-command-global eval-expression () - "Prompt for the expression and evaluate it, echoing result to the `message-area'. -Part of this is functionality is built into execute-command on 3.*. -BUT: this one lacks error handling, so I often use it for Nyxt-internal debugger." - (let ((expression-string - ;; Read an arbitrary expression. No error checking, though. - (first (prompt :prompt "Expression to evaluate" - :sources (list (make-instance 'prompter:raw-source)))))) - ;; Message the evaluation result to the message-area down below. - (echo "~S" (eval (read-from-string expression-string))))) - -(defvar unicode '() - "All the Unicode characters (or, well, all the characters the implementation supports.)") - -(define-class unicode-source (prompter:source) - ((prompter:name "Unicode character") - (prompter:filter-preprocessor #'prompter:filter-exact-matches) - (prompter:constructor (lambda () - (or unicode - (setf unicode - (loop for i from 0 - while (ignore-errors (code-char i)) - collect (code-char i)))))))) - -(defmethod prompter:object-attributes ((char character) (source unicode-source)) - `(("Character" ,(if (graphic-char-p char) - (princ-to-string char) - (format nil "~s" char))) - ("Name" ,(char-name char)) - ("Code" ,(format nil "~D/~:*~X" (char-code char))))) - -(define-command-global insert-unicode (&key (character (prompt :prompt "Character to insert" - :sources 'unicode-source))) - "Insert the chosen Unicode character." - (ffi-buffer-paste (string character))) - -(nyxt/mode/bookmarklets:define-bookmarklet-command-global - post-to-hn - "Post the link you're currently on to Hacker News" - "window.location=\"https://news.ycombinator.com/submitlink?u=\" + encodeURIComponent(document.location) + \"&t=\" + encodeURIComponent(document.title)") - -(define-command-global open-in-nosave-buffer () - "Make a new nosave buffer with URL at point." - (let ((url (url-at-point (current-buffer)))) - (make-nosave-buffer :url url))) - -(ffi-add-context-menu-command - (lambda () - (when (url-at-point (current-buffer)) - (make-nosave-buffer :url (url-at-point (current-buffer))))) - "Open Link in New Nosave Buffer") - -#+nyxt-gtk -(define-command-global make-new-buffer-with-url-and-context () - "Make a new buffer with a user-chosen context and a URL under pointer." - (nyxt/renderer/gtk:make-buffer-with-context :url (url-at-point (current-buffer)))) - -(ffi-add-context-menu-command - 'make-new-buffer-with-url-and-context - "Open Link in New Buffer with Context") - -(define-panel-command-global search-translate-selection (&key (selection (ffi-buffer-copy (current-buffer)))) - (panel "*Translate panel*" :right) - "Open the translation of the selected word in a panel buffer." - (setf (ffi-width panel) 550) - (run-thread "search translation URL loader" - (sleep 0.3) - (buffer-load (quri:uri (format nil (nyxt::search-url (nyxt::default-search-engine)) - (str:concat "translate " (ffi-buffer-copy (current-buffer))))) - :buffer panel)) - "") - -(ffi-add-context-menu-command - 'search-translate-selection - "Translate Selection") - -(define-command-global add-autofill () - "Add an autofill with the selected text to the list of `autofill-mode' autofills." - (push (make-instance 'nyxt/mode/autofill:autofill - :name (prompt1 :prompt "Autofill key" :sources 'prompter:raw-source) - :fill (ffi-buffer-copy (current-buffer))) - (nyxt/mode/autofill::autofills (current-mode :autofill)))) - -(ffi-add-context-menu-command - 'add-autofill - "Add Temporary Autofill") - -(ffi-add-context-menu-command - (lambda () - (let ((url (url-at-point (current-buffer)))) - (nyxt/mode/bookmark:bookmark-add url :title (fetch-url-title url)))) - "Bookmark this URL") - -(defmethod nyxt:value->html :around ((value string) &optional compact-p) - (declare (ignorable compact-p)) - (if (html-string-p value) - (spinneret:with-html-string - (:label - (:raw (call-next-method)) - (:br) - (:raw value))) - (call-next-method))) - -(defun make-clcs-link (symbol) - (str:concat "https://cl-community-spec.github.io/pages/" - (str:replace-all "-" "_002d" symbol))) - -(defmemo ping-clcs (symbol) - (handler-case - (prog1 - t - (dex:get (make-clcs-link symbol))) - (error () nil))) - -(define-command-global clcs-lookup () - (prompt - :sources (list (make-instance - 'prompter:source - :name "CL symbols" - :constructor (mapcar #'prini-to-string - (nsymbols:package-symbols :cl :visibility :external)) - :enable-marks-p t - :filter-postprocessor #'(lambda (suggestions source input) - (declare (ignorable source input)) - (remove-if (complement #'ping-clcs) suggestions - :key #'prompter:value)) - :actions-on-return (list - (lambda-command clcs-current-buffer* (symbols) - (mapcar (alexandria:curry #'make-buffer-focus :url) - (mapcar #'make-clcs-link (rest symbols))) - (buffer-load (make-clcs-link (first symbols)))) - (lambda-command clcs-new-buffer* (symbols) - (mapcar (alexandria:curry #'make-buffer-focus :url) - (mapcar #'make-clcs-link symbols)))))))) |