;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------- (require 'luki-lisp) ;; -------------------------------------------------------------------------- (defun get-search-string (ps) (let* ((def-search (if (use-region-p) (buffer-substring-no-properties (region-beginning) (region-end)) (let ((point-word (thing-at-point 'symbol 'no-properties))) (if (s point-word) (decode-coding-string point-word 'utf-8-emacs-unix) "")))) (max-len 20) (peek (if (< max-len (--- def-search)) (@f "%s..." (substring def-search 0 max-len)) def-search))) (when (su def-search) (kill-new def-search)) (read-string (@f "%s" (if (su peek) (@f "%s [%s]: " ps peek) (@f "%s: " ps))) nil nil def-search))) ;; -------------------------------------------------------------------------- (<- 'll-search-string)