From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Per Weijnitz Newsgroups: gmane.emacs.devel Subject: Change to allow xrefs to be shown in the current window Date: Fri, 11 May 2018 01:49:32 +0200 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: blaine.gmane.org 1526003451 25717 195.159.176.226 (11 May 2018 01:50:51 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 11 May 2018 01:50:51 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 11 03:50:47 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fGxCn-0006Xp-Gc for ged-emacs-devel@m.gmane.org; Fri, 11 May 2018 03:50:45 +0200 Original-Received: from localhost ([::1]:36326 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGxEs-00076V-So for ged-emacs-devel@m.gmane.org; Thu, 10 May 2018 21:52:54 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGvJr-0000RD-DF for emacs-devel@gnu.org; Thu, 10 May 2018 19:49:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGvJq-0006SR-Iv for emacs-devel@gnu.org; Thu, 10 May 2018 19:49:55 -0400 Original-Received: from mail-it0-x230.google.com ([2607:f8b0:4001:c0b::230]:54736) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fGvJq-0006SK-Dq for emacs-devel@gnu.org; Thu, 10 May 2018 19:49:54 -0400 Original-Received: by mail-it0-x230.google.com with SMTP id z6-v6so78370iti.4 for ; Thu, 10 May 2018 16:49:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=646zhsucfGs/crXLhuxuzNTnW9K6VFGz2hNbtQkj1AE=; b=WGEtA3W2am6OerJFPpEs26w0p3XZZLm/XGy2cT4w79S/7NI+gtIj78S5jFLebzw2jM 2dWZjQFvIEZyyLKhtob5WOpr0gTGoceIr6gsip1W1M2yfF6DhoESHnuDkeYbAyy4U5Ir k3OCD1eOQyhSom/9qlAzEzgL7BQUMqSMwUZumnyytG62pX7PHBE+rPdlzdsocqtkEyIU aU7WjjDsHhJHvHEbZDc358+SOTg6urKHEhZFFzIeIH7EnCIZh1LzMFYReG0fa8isSbjU amV2KkQYidanItFXqgNUTYoepljGiYS5DsBGVR+ewDfMbYGHUGsWw9RCweHgnItRc5rd WPgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=646zhsucfGs/crXLhuxuzNTnW9K6VFGz2hNbtQkj1AE=; b=loe1086T0hv1ByfBeBULwiYtuGq4rVUDsPchFKUWrycwDBS8+MXoH9eukmC20CekLS VnvnLAOLYqs618tviHgNeXDFLnSQALb9XkY6aCY4Z1BtzNk6Bbgmvyc+58czef2nqxIT nVcqEdaTW1WiPkphJwkOBGBu+1CWFqEfdo/CubSZ5tczOTm8yZ59Hw7YgXK8t+sjOmTJ 7+/M6bEES06byJX/tAiZt2HDxkE4PONOV/k63QgMCMmhF7XdOsDuAZ1ABnUkwdrwXYVL 2ZdRmkdVHFd1wzUQi3ewckVJ7eixL0u9TIbAWFFNSy/Pmf3g1ulStBB3FAUXBX8KznWX Z30g== X-Gm-Message-State: ALKqPwcL6pr4gn6iiGwstRxSCLCOBt98C2QwaPKK+m5hUgwTYrRnrzmP Uycztn751pXgD5FuvcX8Cj07j5taXTJFQe5s0Rd1U9wW X-Google-Smtp-Source: AB8JxZrq6eHtc5fVr4iASLbULG/Y1HhmHQ8PBnOUSmRHHOdWzDs+gRtzDt5/VQ/4a2Bg60o9nnHaytrW4riDbZigu84= X-Received: by 2002:a24:9d44:: with SMTP id f65-v6mr1025564itd.119.1525996193247; Thu, 10 May 2018 16:49:53 -0700 (PDT) Original-Received: by 2002:a4f:d268:0:0:0:0:0 with HTTP; Thu, 10 May 2018 16:49:32 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4001:c0b::230 X-Mailman-Approved-At: Thu, 10 May 2018 21:52:45 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:225213 Archived-At: Hi! I added another possible value for xref-show-xrefs-function in xref.el. In master, it can be set to value xref--show-xref-buffer, which shows the result list from xref-find-references in another window. The proposed, new value xref--show-xref-same-window shows the result list in the current window. I added it because I prefer that presentation over the other. Would this patch be of interest to you? Proposed Changelog entry: * lisp/progmodes/xref.el: changed xref--show-xref-buffer and added xref--show-xref and xref--show-xref-same-window. I made the following diff from master, updated May 11 2018: diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 9a437b6..28bbc5b 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -762,25 +762,36 @@ xref--analyze #'equal)) (defun xref--show-xref-buffer (xrefs alist) + "Show xref results in another window. +Use with xref-show-xrefs-function." + (xref--show-xref xrefs alist nil)) + +(defun xref--show-xref-current-window (xrefs alist) + "Show xref results in the current window. +Use with xref-show-xrefs-function." + (xref--show-xref xrefs alist 'current-window)) + +(defun xref--show-xref (xrefs alist mode) (let ((xref-alist (xref--analyze xrefs))) (with-current-buffer (get-buffer-create xref-buffer-name) (setq buffer-undo-list nil) (let ((inhibit-read-only t) (buffer-undo-list t)) (erase-buffer) (xref--insert-xrefs xref-alist) (xref--xref-buffer-mode) - (pop-to-buffer (current-buffer)) + (cond ((eq mode 'current-window) (switch-to-buffer (current-buffer))) + (t (pop-to-buffer (current-buffer)))) (goto-char (point-min)) (setq xref--original-window (assoc-default 'window alist) xref--original-window-intent (assoc-default 'display-action alist)) (current-buffer))))) ^L ;; This part of the UI seems fairly uncontroversial: it reads the ;; identifier and deals with the single definition case. ;; (FIXME: do we really want this case to be handled like that in ;; "find references" and "find regexp searches"?) ;; ;; The controversial multiple definitions case is handed off to ;; xref-show-xrefs-function. Best regards /Per