]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new function 'grep-file-at-point'
authorLennart Borgman <lennart.borgman@gmail.com>
Sat, 17 Jul 2021 14:53:36 +0000 (16:53 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 17 Jul 2021 14:53:36 +0000 (16:53 +0200)
* lisp/progmodes/grep.el (grep-file-at-point): New function to
return the file name at point (bug#8252).

etc/NEWS
lisp/progmodes/grep.el

index 4bfb5b4d16562b99e60157a3765bd35f754da779..88d8fbe4b89aa20e30aaec064e86d377ed0e79b6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1153,6 +1153,11 @@ any directory names on the 'find' command lines end in a slash.
 This change is for better compatibility with old versions of non-GNU
 'find', such as the one used on macOS.
 
+---
+*** New utility function 'grep-file-at-point'.
+This returns the name of the file at point (if any) in 'grep-mode'
+buffers.
+
 ** Help
 
 +++
index 462ea51e2ceb3aa14d47dacd07dc990f4ed2c5fc..370bdd5516303eaa3501b0eb230e22e832830615 100644 (file)
@@ -1345,6 +1345,13 @@ command before it's run."
         (grep-highlight-matches 'always))
     (rgrep regexp files dir confirm)))
 
+(defun grep-file-at-point (point)
+  "Return the name of the file at POINT a `grep-mode' buffer.
+The returned file name is relative."
+  (when-let ((msg (get-text-property (point) 'compilation-message))
+             (loc (compilation--message->loc msg)))
+    (caar (compilation--loc->file-struct loc))))
+
 ;;;###autoload
 (defalias 'rzgrep 'zrgrep)