From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Ludlam Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Sat, 10 Oct 2015 12:48:49 -0400 Message-ID: <56194171.1080006@siege-engine.com> References: <5610207A.2000300@harpegolden.net> <83fv1r3gzp.fsf@gnu.org> <83bncf3f9k.fsf@gnu.org> <5610E0BC.8090902@online.de> <83si5r106e.fsf@gnu.org> <831td9z18h.fsf@gnu.org> <5612E996.7090700@yandex.ru> <83bnc7tavr.fsf@gnu.org> <5618C92A.3040207@yandex.ru> <83a8rrt9ag.fsf@gnu.org> <5618D376.1080700@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1444495769 2242 80.91.229.3 (10 Oct 2015 16:49:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 10 Oct 2015 16:49:29 +0000 (UTC) Cc: adatgyujto@gmail.com, emacs-devel@gnu.org To: Dmitry Gutov , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 10 18:49:14 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 1ZkxKb-00010n-H0 for ged-emacs-devel@m.gmane.org; Sat, 10 Oct 2015 18:49:13 +0200 Original-Received: from localhost ([::1]:45505 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkxKa-0004vv-MP for ged-emacs-devel@m.gmane.org; Sat, 10 Oct 2015 12:49:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkxKJ-0004vZ-7N for emacs-devel@gnu.org; Sat, 10 Oct 2015 12:48:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZkxKG-00028l-0z for emacs-devel@gnu.org; Sat, 10 Oct 2015 12:48:55 -0400 Original-Received: from mail-qk0-f179.google.com ([209.85.220.179]:36365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkxKF-00028h-T5; Sat, 10 Oct 2015 12:48:51 -0400 Original-Received: by qkht68 with SMTP id t68so44532938qkh.3; Sat, 10 Oct 2015 09:48:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=6EP/MUzxL2YNDeRuxx2rlJoW5h+ZulZVY3BG/o8Zu4I=; b=XoYNAxGCs0I0SYy/FNzcawKIWOSfHVB+599gV7appv6ysBXc4bzs47G+dvnYn8gaUw ZP47eoefccXAH98/X4U43HJUwb5QWIxOTvg/iw4hjOPcvzdQd7XMyEEJH3XFDvzPAn+6 QU4L++Vh1qbEXapH8VjSmEz+UVz9o3DBvWe7PcoWMDq8OuQm8rGJFkeGnR5yfgDgHiTl JhBLWaOGmpZCBV7CQtMBjlBHNr/mY9X6+z8JkOseghS2pnghVfJs9v0SDKeZjEPwRR4Z t1KHN1FF7pXVgyu0VuicegjcyiORNkfHJvW3jPt82A5zIS6s/4ivZgdL5dF0QueAmcLS 9pEw== X-Received: by 10.55.215.18 with SMTP id m18mr21333417qki.49.1444495731343; Sat, 10 Oct 2015 09:48:51 -0700 (PDT) Original-Received: from [192.168.1.202] (pool-71-184-198-118.bstnma.fios.verizon.net. [71.184.198.118]) by smtp.googlemail.com with ESMTPSA id r38sm3238004qkr.29.2015.10.10.09.48.50 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Oct 2015 09:48:50 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 In-Reply-To: <5618D376.1080700@yandex.ru> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.220.179 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:191154 Archived-At: On 10/10/2015 04:59 AM, Dmitry Gutov wrote: > On 10/10/2015 11:30 AM, Eli Zaretskii wrote: > >> I was talking about working on IDE, not on completion. And for the >> most popular languages in the industry, not just for some a few niche >> languages. > > You quoted the message that said "accurate code completion and powerful > refactoring support". I can agree that the latter is barely touched (*), > but it looked like you ignored the former. > >> Let's not reiterate past discussions: you forget CEDET. > > I was enumerating external programs. But sure, CEDET is a yet another > option for completion. Though not too "accurate" one, if we're talking > anything but C. I had always intended CEDET to be a baseline for IDE like features. Looking just at tagging files, those familiar with it's internals recognize that it can use external tools as weak as ctags or GLOBAL, and can use a more powerful external tool for parsing as well, such as using JAVAC for decompiling .jar files into tags. As a backup, it also has in-buffer parsing for when you've only half-written your code, or when no external tool is available. The same philosophy is throughout CEDET. Unfortunately, those who are interested in tooling who brush casually past CEDET only see that people complain that it doesn't always complete right, or that the C++ part is hard to setup, and don't see that the cool piece they want integrated into Emacs could use CEDET as a framework. A side effect is that every completion engine out there has a custom way of integrating random tools in. In theory, completion engines could call into CEDET, and let CEDET dispatch to the other tools. In that world, bootstrapping new tools is simpler with only one backend to worry about, and there would be more language independent creativity for IDE like features. If we look at the two starting key features listed for IDEs, "completion" and "refactoring", the basics are all there. CEDET has a completion engine, but it is only as good as the input data. If better external tools (like GCC) or easier to configure tools could feed it, it would be more accurate. CEDET also has 'srecode' which is about generating code. This bit is trickier, as the intention is you could write one highlevel tool that might extract tag data from your file, permute the language-independent tags, and then write them back out with srecode. There are tests showing this working, but they are simple and proof of concept and not stuff someone would depend on day-to-day. What it needs is folks who care about cross language tooling, and not just the language specific part. While I continue to maintain CEDET, I don't code for a living anymore, so do not run into CEDET's rough corners enough to know to fix them. Eric