unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: philip@warpmail.net, theo@thornhill.no, emacs-devel@gnu.org
Subject: Re: master 1e3b0f2: Improve doc strings of project.el
Date: Sun, 28 Jun 2020 03:56:29 +0300	[thread overview]
Message-ID: <5542db0c-cc0d-2743-87ae-7728a0cc94bb@yandex.ru> (raw)
In-Reply-To: <83a70wv4mj.fsf@gnu.org>

Hi Eli,

Thanks for these examples. Commends below.

On 21.06.2020 18:08, Eli Zaretskii wrote:
>>     And project-switch-to-buffer should work with all kinds of projects.
>>
>>      Yes.  And one such kind is an ad-hoc collection of files and buffers,
>>      where only the user knows which ones he/she is interested in and which
>>      ones he/she isn't.  Every IDE I saw supports something like that, so
>>      we should do that as well, IMO.
>>
>> I'm curious about those "every IDE". I don't recall such a feature in ones I tried. Perhaps I just didn't use it, of course.
> Few examples below:
> 
>    Code::Blocks:
>    https://www.cs.odu.edu/~zeil/FAQs/Public/newIDEProject/index.html#creating-a-project-from-existing-code

Going by "Navigate to the directory where you already have your code.", 
it seems to expect that all project code resides in the directory the 
user specifies. Although, for some reason or other, it decides to 
default to not listing existing source code in there in the "sources" 
section. Perhaps that has to do with build configuration.

Note A: Being able to tell "source files" from the rest of the project 
files is a concern that we haven't looked into yet (nor into its 
applications). In the default backend, though, I would like to have it 
work automatically as well (probably by having a configurable list of 
globs/file extensions/etc).

Note B: If you only meant this as an illustration of including certain 
files in the directory, this setup should be supportable when we add 
support for whitelisting entries (as opposed to just blacklisting ones, 
through in project-ignores). That would still require all files to be 
contained inside the directory that is designated as "project root 
directory".

>    Visual Studio:
>    https://docs.microsoft.com/en-us/visualstudio/ide/creating-solutions-and-projects?view=vs-2019
>    Look under "Create a project from existing code files", "Add files
>    to a solution", "Create empty solutions"

"Create a project from existing code files" actually makes VS pick up 
all the source files in the chosen directory, from what I can tell. In 
that, it's closer to our project-vc backend than to Code::Blocks.

"Add files to a solution" talks about having a file that "applies to 
multiple projects". Which talks about a case of spreading the current 
work contents across multiple root directories. Which is what its 
"solutions" are.

As far as how to support a notion similar to solutions best, I'm not 
sure. Perhaps it indeed would be a separate thing (package/feature/etc), 
with a file-based configuration, that points at projects included in it. 
That way, project-vc backend (and others) could be reused for included 
projects. And we could have solution-level commands (e.g. 
solution-find-file, which scans across all included projects). I don't 
understand the level of demand for this among our users, and as such, 
the necessary features.

We're not at the level of complexity that Visual Studio has (WRT build 
configurations support, etc), and most other text editors I know don't 
have this feature, so perhaps it's a bit premature. The good news here, 
however, is that implementing solutions as a separate feature on top of 
project.el should be relatively simple. And people are welcome to 
experiment.

>    QNX:
>    https://www.qnx.com/developers/docs/6.4.1/ide_en/user_guide/tutorials.html

It seems to describe a situation similar to MS VS, except "solutions" 
are called "workspaces" here.

Otherwise, you don't select individual files inside a project to be added.

>    Netbeans:
>    https://netbeans.apache.org/kb/docs/cnd/quickstart.html#_adding_existing_files_to_your_project

"Creating a Project With Existing Sources" seems to import all source 
files within a project directory automatically.

I wonder what "Adding Existing Files to Your Project" does. Perhaps it 
copies files from elsewhere into the project directory, if it's not 
there yet.

>    TI's Code Composer:
>    http://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_project-management.html#adding-or-linking-source-files-to-project

The "physically copied" case is obvious.

Regarding "When you link a file/folder to a project ...", does it create 
a symlink, maybe? That wouldn't require a configuration change.

To sum up, what I saw here is mostly what I'm already used to anyway: a 
project is basically a directory with some files in it (the set is 
generally based on the principle of exclusion, but some subviews can be 
based on inclusion/whitelist as well), and not an arbitrary set of files 
from random places on disk.

Not to discourage alternative workflows, but this is the concept we 
should work on supporting well first.

I should also note that these other editors have no concept of 
"buffers", and thus no way to configure their inclusion of exclusion. 
Thus, any entity that might correspond to our non-file-visiting buffers 
(such as a search window, or a compilation output window) is likely 
implicitly considered to just be part of the current project or 
solution. Please feel free to correct me here.

(To be continued, to address the rest of the email.)



  parent reply	other threads:[~2020-06-28  0:56 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200619075401.21856.16524@vcs0.savannah.gnu.org>
     [not found] ` <20200619075402.CE1D220A27@vcs0.savannah.gnu.org>
2020-06-19 11:01   ` master 1e3b0f2: Improve doc strings of project.el Dmitry Gutov
2020-06-19 11:24     ` Eli Zaretskii
2020-06-19 11:37       ` Basil L. Contovounesios
2020-06-19 11:50         ` Eli Zaretskii
2020-06-19 12:30       ` Dmitry Gutov
2020-06-19 12:44         ` Eli Zaretskii
2020-06-19 12:54           ` Dmitry Gutov
2020-06-19 13:27             ` Philip K.
2020-06-19 13:34               ` Dmitry Gutov
2020-06-19 14:11               ` Eli Zaretskii
2020-06-19 14:18                 ` Dmitry Gutov
2020-06-19 14:24                   ` Eli Zaretskii
2020-06-19 14:41                     ` Philip K.
2020-06-20  7:22                       ` Eli Zaretskii
2020-06-19 14:25                 ` Theodor Thornhill
2020-06-19 14:37                   ` Eli Zaretskii
2020-06-19 14:49                     ` Dmitry Gutov
2020-06-19 15:11                       ` Eli Zaretskii
2020-06-19 18:33                         ` Dmitry Gutov
2020-06-19 19:01                           ` Eli Zaretskii
2020-06-19 19:28                             ` Dmitry Gutov
2020-06-20  6:43                               ` Eli Zaretskii
2020-06-20  7:43                                 ` Theodor Thornhill
2020-06-20  8:55                                   ` Eli Zaretskii
2020-06-20  9:29                                     ` Theodor Thornhill
2020-06-20 10:07                                       ` Eli Zaretskii
2020-06-20 10:19                                         ` Theodor Thornhill
2020-06-20 11:37                                           ` Dmitry Gutov
2020-06-20 11:35                                         ` Dmitry Gutov
2020-06-20 12:32                                           ` Eli Zaretskii
2020-06-20 22:21                                             ` Dmitry Gutov
2020-06-20 11:29                                     ` Dmitry Gutov
2020-06-20 11:46                                       ` Kévin Le Gouguec
2020-06-20 11:57                                         ` Dmitry Gutov
2020-06-20 12:37                                           ` Eli Zaretskii
2020-06-20 21:18                                             ` Dmitry Gutov
2020-06-20 12:25                                       ` Eli Zaretskii
2020-06-20 23:17                                         ` Dmitry Gutov
2020-06-20 11:25                                 ` Dmitry Gutov
2020-06-20 12:12                                   ` Eli Zaretskii
2020-06-20 12:30                                     ` Basil L. Contovounesios
2020-06-20 12:42                                       ` Eli Zaretskii
2020-06-20 23:11                                     ` Dmitry Gutov
2020-06-21 15:08                                       ` Eli Zaretskii
2020-06-21 22:24                                         ` Juri Linkov
2020-06-22  2:27                                           ` Eli Zaretskii
2020-06-28  0:56                                         ` Dmitry Gutov [this message]
2020-06-28 14:28                                           ` Eli Zaretskii
2020-06-28 22:35                                             ` Dmitry Gutov
2020-06-29 14:50                                               ` Eli Zaretskii
2020-06-29 15:07                                                 ` Stephen Leake
2020-06-29 22:35                                                   ` Juri Linkov
2020-07-01 22:02                                                     ` Dmitry Gutov
2020-07-01 22:07                                                   ` Dmitry Gutov
2020-07-01 22:57                                                 ` Dmitry Gutov
2020-07-04  7:15                                                   ` Eli Zaretskii
2020-07-04 22:22                                                     ` Dmitry Gutov
2020-07-05 14:26                                                       ` Eli Zaretskii
2020-07-05 19:45                                                         ` Dmitry Gutov
2020-07-07 15:04                                                           ` Eli Zaretskii
2020-07-07 15:23                                                             ` Dmitry Gutov
2020-07-10 14:27                                                               ` Eli Zaretskii
2020-07-10 14:57                                                                 ` Dmitry Gutov
2020-07-10 18:14                                                                   ` Eli Zaretskii
2020-07-10 19:36                                                                     ` Dmitry Gutov
2020-07-11  6:58                                                                       ` Eli Zaretskii
2020-07-11 11:29                                                                         ` Dmitry Gutov
2020-07-11 12:35                                                                           ` Eli Zaretskii
2020-07-12  0:48                                                                             ` Dmitry Gutov
2020-07-12 14:00                                                                               ` Eli Zaretskii
2020-07-12 14:16                                                                                 ` Dmitry Gutov
2020-07-12 14:47                                                                                   ` Eli Zaretskii
2020-07-12 15:08                                                                                     ` Dmitry Gutov
2020-07-12 15:36                                                                                       ` Eli Zaretskii
2020-07-12 16:17                                                                                         ` Eli Zaretskii
2020-07-13  1:51                                                                                           ` Dmitry Gutov
2020-07-13  4:40                                                                                             ` Eli Zaretskii
2020-07-13  7:11                                                                                               ` Gregory Heytings via Emacs development discussions.
2020-07-13  7:21                                                                                                 ` Eli Zaretskii
2020-07-13  7:52                                                                                                   ` Gregory Heytings via Emacs development discussions.
2020-07-13  8:53                                                                                                     ` Eli Zaretskii
2020-07-13 18:26                                                                                                       ` Dmitry Gutov
2020-07-13  7:58                                                                                                 ` tomas
2020-07-17 10:27                                                                                                   ` Dmitry Gutov
2020-07-17 15:27                                                                                                     ` tomas
2020-07-18  0:55                                                                                                       ` Dmitry Gutov
2020-07-18  9:05                                                                                                         ` tomas
2020-07-18 10:10                                                                                                           ` Eli Zaretskii
2020-07-18 11:58                                                                                                             ` Dmitry Gutov
2020-07-18 19:14                                                                                                           ` Dmitry Gutov
2020-07-19  2:27                                                                                                             ` Richard Stallman
2020-07-19 21:59                                                                                                               ` Dmitry Gutov
2020-07-20  2:44                                                                                                                 ` Richard Stallman
2020-07-13 19:51                                                                                               ` Dmitry Gutov
2020-07-16 16:34                                                                                                 ` Eli Zaretskii
2020-07-16 18:55                                                                                                   ` Dmitry Gutov
2020-07-16 19:57                                                                                                     ` Eli Zaretskii
2020-07-16 21:02                                                                                                       ` Dmitry Gutov
2020-07-17  1:07                                                                                                     ` Richard Stallman
2020-07-17  1:30                                                                                                       ` Dmitry Gutov
2020-07-16 18:56                                                                                                   ` Dmitry Gutov
2020-07-16 19:59                                                                                                     ` Eli Zaretskii
2020-07-16 20:53                                                                                                       ` Dmitry Gutov
2020-07-13  2:51                                                                                         ` Richard Stallman
2020-07-13 10:47                                                                                           ` Dmitry Gutov
2020-07-13 13:00                                                                                             ` Eli Zaretskii
2020-07-13 15:24                                                                                               ` Dmitry Gutov
2020-07-13 16:30                                                                                                 ` Eli Zaretskii
2020-07-13 19:01                                                                                                   ` Dmitry Gutov
2020-07-13 19:41                                                                                                     ` Eli Zaretskii
2020-07-13 21:39                                                                                                       ` Dmitry Gutov
2020-07-11 12:59                                                                           ` Michael Albinus
2020-07-12 14:49                                                                             ` Dmitry Gutov
2020-07-12 17:19                                                                               ` Michael Albinus
2020-06-28 22:14                                         ` Dmitry Gutov
2020-06-29 14:32                                           ` Eli Zaretskii
2020-06-19 15:02                     ` Dmitry Gutov
2020-06-19 15:13                       ` Eli Zaretskii
2020-06-19 18:23                         ` Dmitry Gutov
2020-06-19 18:44                           ` Eli Zaretskii
2020-06-19 18:49                             ` Dmitry Gutov
2020-06-19 19:07                               ` Eli Zaretskii
2020-06-19 15:02                     ` Theodor Thornhill via Emacs development discussions.
2020-06-19 15:19                       ` Eli Zaretskii
2020-06-19 15:39                         ` Theodor Thornhill
2020-06-19 17:11                           ` Eli Zaretskii
2020-06-19 17:46                             ` Theodor Thornhill
2020-06-19 18:03                               ` Eli Zaretskii
2020-06-19 18:19                                 ` Dmitry Gutov
2020-06-19 18:36                                   ` Eli Zaretskii
2020-06-19 18:49                                     ` Dmitry Gutov
2020-06-19 18:22                                 ` Theodor Thornhill
2020-06-19 18:41                                   ` Eli Zaretskii
2020-06-19 18:57                                     ` Theodor Thornhill
2020-06-19 19:10                                       ` Dmitry Gutov
2020-06-19 20:08                                         ` theo
2020-06-19 19:04                                     ` Dmitry Gutov
2020-06-19 19:12                                       ` Eli Zaretskii
2020-06-19 19:33                                         ` Dmitry Gutov
2020-06-20  7:20                                           ` Eli Zaretskii
2020-06-20 11:41                                             ` Dmitry Gutov
2020-06-20 12:36                                               ` Eli Zaretskii
2020-06-20 21:58                                                 ` Dmitry Gutov
2020-06-19 18:21                           ` Dmitry Gutov
2020-06-19 18:30                             ` Theodor Thornhill
2020-06-19 14:07             ` Eli Zaretskii
2020-06-19 14:23               ` Dmitry Gutov
2020-06-19 14:28                 ` Eli Zaretskii
     [not found] <<87bllfqj82.fsf@warpmail.net>
     [not found] ` <<83o8pfxhzq.fsf@gnu.org>
     [not found]   ` <<I2nnldrvYQuQLpqgZyK7owqcMuP8kMtAdgkVXzq66i2hg6TgDaYFJe4RMj19j0J9Z1WqR9_vbifeegWNOLS3BBv-R34nJLuXYurqIVrefNE=@thornhill.no>
     [not found]     ` <<83imfnxgt3.fsf@gnu.org>
     [not found]       ` <<626efe11-0f9c-081b-11dd-0d61cee8168d@yandex.ru>
     [not found]         ` <<83h7v7xf7w.fsf@gnu.org>
     [not found]           ` <<b7f4a9ba-4320-b7b2-e150-74d667943ecd@yandex.ru>
     [not found]             ` <<831rmayj55.fsf@gnu.org>
     [not found]               ` <<6dc2c2ac-8e17-f044-dc78-8c109f936ad2@yandex.ru>
     [not found]                 ` <<83wo42w83e.fsf@gnu.org>
     [not found]                   ` <<6762abf5-71c1-aa54-1bac-d4c90c20870b@yandex.ru>
     [not found]                     ` <<831rmavsuq.fsf@gnu.org>
2020-06-20 22:55                       ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5542db0c-cc0d-2743-87ae-7728a0cc94bb@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=philip@warpmail.net \
    --cc=theo@thornhill.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).