* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading [not found] ` <20190514021212.977E5206A2@vcs0.savannah.gnu.org> @ 2019-05-15 17:46 ` Basil L. Contovounesios 2019-05-15 20:31 ` Dmitry Gutov 2019-05-15 21:11 ` Stefan Monnier 0 siblings, 2 replies; 8+ messages in thread From: Basil L. Contovounesios @ 2019-05-15 17:46 UTC (permalink / raw) To: emacs-devel; +Cc: Dmitry Gutov dgutov@yandex.ru (Dmitry Gutov) writes: > branch: master > commit e0ee41d155b210327eb9c9ad5334f80ed59439f4 > Author: Dmitry Gutov <dgutov@yandex.ru> > Commit: Dmitry Gutov <dgutov@yandex.ru> > > Allow customizing the display of project file names when reading > > To hopefully resolve a long-running discussion > (https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00162.html). > > * lisp/progmodes/project.el (project-read-file-name-function): > New variable. > (project--read-file-absolute, project--read-file-cpd-relative): > New functions, possible values for the above. > (project-find-file-in): Use the introduced variable. > (project--completing-read-strict): Retain just the logic that fits > the name. [...] > diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el > index 7c8ca15..ddb4f33 100644 > --- a/lisp/progmodes/project.el > +++ b/lisp/progmodes/project.el > @@ -470,55 +464,72 @@ recognized." > (project-external-roots pr)))) > (project-find-file-in (thing-at-point 'filename) dirs pr))) > > +(defcustom project-read-file-name-function #'project--read-file-cpd-relative > + "Function to call to read a file name from a list. > +For the arguments list, see `project--read-file-cpd-relative'." > + :type '(repeat (choice (const :tag "Read with completion from relative names" > + project--read-file-cpd-relative) > + (const :tag "Read with completion from absolute names" > + project--read-file-absolute) > + (function :tag "custom function" nil)))) > + > +(defun project--read-file-cpd-relative (prompt > + all-files &optional predicate > + hist default) > + (let* ((common-parent-directory > + (let ((common-prefix (try-completion "" all-files))) > + (if (> (length common-prefix) 0) > + (file-name-directory common-prefix)))) > + (cpd-length (length common-parent-directory)) > + (prompt (if (zerop cpd-length) > + prompt > + (concat prompt (format " in %s" common-parent-directory)))) > + (substrings (mapcar (lambda (s) (substring s cpd-length)) all-files)) > + (new-collection (project--file-completion-table substrings)) > + (res (project--completing-read-strict prompt > + new-collection > + predicate > + hist default))) > + (concat common-parent-directory res))) Sorry if this has been discussed before, and maybe it's just me, but I don't think it makes sense to offer internal double hyphen functions as alternatives for a user option, let alone to point the user to such an internal function which lacks a docstring, "for the argument list". Thanks, -- Basil ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-15 17:46 ` [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading Basil L. Contovounesios @ 2019-05-15 20:31 ` Dmitry Gutov 2019-05-15 23:11 ` Basil L. Contovounesios 2019-05-15 21:11 ` Stefan Monnier 1 sibling, 1 reply; 8+ messages in thread From: Dmitry Gutov @ 2019-05-15 20:31 UTC (permalink / raw) To: Basil L. Contovounesios, emacs-devel On 15.05.2019 20:46, Basil L. Contovounesios wrote: > Sorry if this has been discussed before, and maybe it's just me, but I > don't think it makes sense to offer internal double hyphen functions as > alternatives for a user option, let alone to point the user to such an > internal function which lacks a docstring, "for the argument list". No, we never discussed this in particular. So I pushed the cleanest version that made sense to me. Do we not do that (put internal functions as possible values of a user option)? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-15 20:31 ` Dmitry Gutov @ 2019-05-15 23:11 ` Basil L. Contovounesios 2019-05-16 9:51 ` Basil L. Contovounesios 0 siblings, 1 reply; 8+ messages in thread From: Basil L. Contovounesios @ 2019-05-15 23:11 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-devel Dmitry Gutov <dgutov@yandex.ru> writes: > On 15.05.2019 20:46, Basil L. Contovounesios wrote: >> Sorry if this has been discussed before, and maybe it's just me, but I >> don't think it makes sense to offer internal double hyphen functions as >> alternatives for a user option, let alone to point the user to such an >> internal function which lacks a docstring, "for the argument list". > > No, we never discussed this in particular. So I pushed the cleanest version that > made sense to me. I'm grateful for the addition, but I think user options ought to also make sense to the user. > Do we not do that (put internal functions as possible values of a user option)? Sorry, the emphasis in my last message was meant to be on the lack of any description of the user option's arglist. If the defcustom is to refer the user elsewhere, that place might at least have a docstring. Though I don't understand why the user would be presented with internal functions as options (it makes it harder to distinguish internal from external definitions and APIs), I don't feel strongly enough about it to argue against it. Thanks, -- Basil ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-15 23:11 ` Basil L. Contovounesios @ 2019-05-16 9:51 ` Basil L. Contovounesios 2019-05-16 13:35 ` Dmitry Gutov 0 siblings, 1 reply; 8+ messages in thread From: Basil L. Contovounesios @ 2019-05-16 9:51 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1025 bytes --] "Basil L. Contovounesios" <contovob@tcd.ie> writes: > Dmitry Gutov <dgutov@yandex.ru> writes: > >> On 15.05.2019 20:46, Basil L. Contovounesios wrote: >>> Sorry if this has been discussed before, and maybe it's just me, but I >>> don't think it makes sense to offer internal double hyphen functions as >>> alternatives for a user option, let alone to point the user to such an >>> internal function which lacks a docstring, "for the argument list". >> >> No, we never discussed this in particular. So I pushed the cleanest version that >> made sense to me. > > I'm grateful for the addition, but I think user options ought to also > make sense to the user. > >> Do we not do that (put internal functions as possible values of a user option)? > > Sorry, the emphasis in my last message was meant to be on the lack of > any description of the user option's arglist. If the defcustom is to > refer the user elsewhere, that place might at least have a docstring. I think even something as simple as the following would help: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: project.diff --] [-- Type: text/x-diff, Size: 719 bytes --] diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index eab508af3a..cc45a71f57 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -477,6 +477,10 @@ project-read-file-name-function (defun project--read-file-cpd-relative (prompt all-files &optional predicate hist default) + "Read a file name, prompting with PROMPT. +ALL-FILES is a list of possible file name completions. +PREDICATE, HIST, and DEFAULT have the same meaning as in +`completing-read'." (let* ((common-parent-directory (let ((common-prefix (try-completion "" all-files))) (if (> (length common-prefix) 0) [-- Attachment #3: Type: text/plain, Size: 20 bytes --] Thanks, -- Basil ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-16 9:51 ` Basil L. Contovounesios @ 2019-05-16 13:35 ` Dmitry Gutov 2019-05-16 22:31 ` Basil L. Contovounesios 0 siblings, 1 reply; 8+ messages in thread From: Dmitry Gutov @ 2019-05-16 13:35 UTC (permalink / raw) To: Basil L. Contovounesios; +Cc: emacs-devel On 16.05.2019 12:51, Basil L. Contovounesios wrote: > I think even something as simple as the following would help: LGTM, thanks you. Do you have commit access? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-16 13:35 ` Dmitry Gutov @ 2019-05-16 22:31 ` Basil L. Contovounesios 0 siblings, 0 replies; 8+ messages in thread From: Basil L. Contovounesios @ 2019-05-16 22:31 UTC (permalink / raw) To: Dmitry Gutov; +Cc: emacs-devel Dmitry Gutov <dgutov@yandex.ru> writes: > On 16.05.2019 12:51, Basil L. Contovounesios wrote: >> I think even something as simple as the following would help: > > LGTM, thanks you. > > Do you have commit access? Yes, pushed to master[1]. [1: b2c0eb63dd]: Add docstring to project--read-file-cpd-relative 2019-05-16 23:26:27 +0100 https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=b2c0eb63dd1f0d68de9bf7f14cc337df51617dcc Thanks, -- Basil ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-15 17:46 ` [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading Basil L. Contovounesios 2019-05-15 20:31 ` Dmitry Gutov @ 2019-05-15 21:11 ` Stefan Monnier 2019-05-15 23:12 ` Basil L. Contovounesios 1 sibling, 1 reply; 8+ messages in thread From: Stefan Monnier @ 2019-05-15 21:11 UTC (permalink / raw) To: emacs-devel > Sorry if this has been discussed before, and maybe it's just me, but I > don't think it makes sense to offer internal double hyphen functions as > alternatives for a user option, I think I should plead guilty, here. Yet, I also think I agree with you. Should I split in half? Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading 2019-05-15 21:11 ` Stefan Monnier @ 2019-05-15 23:12 ` Basil L. Contovounesios 0 siblings, 0 replies; 8+ messages in thread From: Basil L. Contovounesios @ 2019-05-15 23:12 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> Sorry if this has been discussed before, and maybe it's just me, but I >> don't think it makes sense to offer internal double hyphen functions as >> alternatives for a user option, > > I think I should plead guilty, here. Yet, I also think I agree with you. > Should I split in half? That sounds painful, but a world with two Stefans sounds interesting to say the least, so I'm split on this. -- Basil ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-05-16 22:31 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20190514021209.16750.6451@vcs0.savannah.gnu.org> [not found] ` <20190514021212.977E5206A2@vcs0.savannah.gnu.org> 2019-05-15 17:46 ` [Emacs-diffs] master e0ee41d: Allow customizing the display of project file names when reading Basil L. Contovounesios 2019-05-15 20:31 ` Dmitry Gutov 2019-05-15 23:11 ` Basil L. Contovounesios 2019-05-16 9:51 ` Basil L. Contovounesios 2019-05-16 13:35 ` Dmitry Gutov 2019-05-16 22:31 ` Basil L. Contovounesios 2019-05-15 21:11 ` Stefan Monnier 2019-05-15 23:12 ` Basil L. Contovounesios
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).