From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?utf-8?Q?Llu=C3=ADs?= Newsgroups: gmane.emacs.devel Subject: Project detection and configuration (Was: IDE) Date: Wed, 14 Oct 2015 17:58:21 +0200 Message-ID: <87a8rlcuhu.fsf@fimbulvetr.bsc.es> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444838383 10546 80.91.229.3 (14 Oct 2015 15:59:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 Oct 2015 15:59:43 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 14 17:59:28 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZmOSc-0005ul-Od for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 17:59:27 +0200 Original-Received: from localhost ([::1]:43170 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmOSc-0006Qy-1R for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 11:59:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48565) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmORh-0005SX-9g for emacs-devel@gnu.org; Wed, 14 Oct 2015 11:58:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmORc-0004II-UP for emacs-devel@gnu.org; Wed, 14 Oct 2015 11:58:28 -0400 Original-Received: from mout.gmx.net ([212.227.17.22]:53042) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmORc-0004I6-Kj for emacs-devel@gnu.org; Wed, 14 Oct 2015 11:58:24 -0400 Original-Received: from localhost ([84.88.51.85]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0LzbXq-1ah3RE46GQ-014jkt for ; Wed, 14 Oct 2015 17:58:23 +0200 Mail-Followup-To: emacs-devel@gnu.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) X-Provags-ID: V03:K0:hixKaNYk72+kn9x4pRtFO9FJq7RCRns5pEYHDv9FZchSvUw/wsy qw4DnSwGi0O9KAQ3NzWv7fIALFxFgHRCkksvYx/kWMSGd4h9bwgm/kwL81BnFKc+vZYnCKh /2Oa6u8zALVxuIqXGMQZmygUm301ytsKYcdhNiKKTefYCw9rxApzdca012uLX6mqEFpyYCr xotLr8N9EaAuF9QjN+ZYA== X-UI-Out-Filterresults: notjunk:1;V01:K0:vqngNTuJkGg=:mxKZOgtVPQ3U5FqzIOWbnx qEfizr76LqP48jRSkSHFg/jMI9AdOOrRP1DvHu2ERODHf6xFIgvDYWkj920UoEZIrt/FdRjKY gSgIS4Swjk9itvYgHaw/2O+mquuAx6xvcef+cugi0BEdHJeZTJeuLgkYandtoJY6VtVnlZ6iV OB4HSrNNjJUhVSJ6dx0dZJwRNiaZaSmAbFfYjiVXj3OLdtD+rS4+aJ7RXTGeyZjxhLBJmvU27 jbPlgd1arrE5cTvgOfosDrudnJIKNMP8X0+U+lPZMV1iVBvzlsuZyEWbZODAeiKnM9zWrBJ6D ugvqW8jN/zjFgsikCSwVi98LY1UBd38h+H+ze/+7/bCZw1bqMZRN0/1d8XvN9rMaH2gkYJ8SR /cIISsb1EVawMTX7doNbFC+dCyqAH7FuCT55bnSXfVe5v7HQ2jmz3WlaYEsEhqWjvMRVjFrvp cX18IKKUOaWi3hh+LEKHcIFGA2IWOhfxkjTnPQChhvjyiHcIbFxuzcoigMqg1KaKkpvma8B8r MnjCdb/iAi/5dJsQPZBPnTNCIEJM88mzJjV5oBvVNqjurlOOL04I1yk4WQ072ZAkzOzXKJrFf J+JzAeFZ/S+euHG0yvinVdq/74yDooi4aa+gjYHDZnOL149+U2QELLeMdkoWsi9XBoePQPS9D f4CpyAg8R7OjhPxshNRf2oM/HRcLwh79i3Oglus7DIS1yvpNe2mEWQE8rwispF9MOGYkWZym9 p+CTEA0/StRlTPB03w6HYit1Jt4FlxGsav7F3qfJsYE0IbbTeqiuIChzWMplrGJiIpsoc3gU X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191576 Archived-At: Hi! As Eric pointed out, most of the user-facing features of an IDE depend on some underlying support to detect and configure projects. Now, it is not clear what "detect and configure" really means, but it seems that EDE (CEDET's project management component) is not fully satisfying or simple enough to extend/configure at this point in time. I've formed my own opinions on how this could be improved, but I would like to hear what others think before discussing how to do it. So, what is required from "project management"? A few things quickly come into mind: * Repository ** Detect the root directory that conforms a checked-out repository ** Ignore repository-specific files on other components ** Interact with repo-management tools? * Project information ** Name, version, homepage, etc * Build system ** This one seems rather tricky to provide a unified interface ** Detect autotools, hand-made makefiles, ant, maven, linux, etc. ** Build modes of a project (e.g., debug vs release) ** Generate files (targets) of a project ** Create release tarballs? ** Sometimes identifies the root directory of the project * Source file locations ** Detect the "MIME" of every file on the project ** Information from the build system usually helps identifying files ** Detect changes to files * Per-source compilation flags ** Necessary for code-analysis tools ** Can be extracted from the build system on some very narrow cases * Code analysis ** Use CEDET's parsers *** Needs to know where are the relevant sources, and their interdependence ** Use external tools *** Need to know how to access their information *** Need to know how to update their information? * Auto-detection ** All functionality implementations should support as much auto-configuration as possible * Code navigation, refactoring and other high-level operations ** I'm leaving these out of the "project management" discussion for now, since I think they can be implemented on top of the rest * Let users customize each of the above ** It should be easy to customize existing functionality (e.g., using dir-local vars, a simple alist, etc.) ** It should be reasonably easy to compose different implementations of a functionality (e.g., use some project auto-detection and on top overlay some functionality for a specific external dependency - finding the headers for external library dependencies comes into mind -) ** It should be reasonably easy to write new functionality for each of these tasks; made easier if composition is easy What else? PS: Note that some functionalities are repeated on that list. Thanks, Lluis -- "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth