From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?ISO-8859-1?Q?Nordl=F6w?= Newsgroups: gmane.emacs.help Subject: Auto-Insertion of C/C++ #include-statements upon use of their symbols Date: Wed, 17 Sep 2008 08:04:39 -0700 (PDT) Organization: http://groups.google.com Message-ID: <0724fa6a-b298-49b8-84bb-06933d09c573@p25g2000hsf.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1221666096 7731 80.91.229.12 (17 Sep 2008 15:41:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 17 Sep 2008 15:41:36 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Sep 17 17:42:33 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KfzA5-0000mb-5I for geh-help-gnu-emacs@m.gmane.org; Wed, 17 Sep 2008 17:41:49 +0200 Original-Received: from localhost ([127.0.0.1]:50058 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kfz93-0004lV-BP for geh-help-gnu-emacs@m.gmane.org; Wed, 17 Sep 2008 11:40:45 -0400 Original-Path: news.stanford.edu!newsfeed.stanford.edu!postnews.google.com!p25g2000hsf.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 27 Original-NNTP-Posting-Host: 150.227.15.253 Original-X-Trace: posting.google.com 1221663879 16953 127.0.0.1 (17 Sep 2008 15:04:39 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 17 Sep 2008 15:04:39 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: p25g2000hsf.googlegroups.com; posting-host=150.227.15.253; posting-account=ytJKAgoAAAA1tg4ScoRszebXiIldA5vg User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; sv-SE; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1,gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 netcache (NetCache NetApp/6.1.1RC1) Original-Xref: news.stanford.edu gnu.emacs.help:162385 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:57728 Archived-At: I am currently writing some logic for automatically looking up a required header file when the programmer completes the use of a symbol defined in this header file. This to relieve especially C/C++ programmers from the cumbersome process of doing for example "man memcpy" to figure out that we need to "include " before calling memcpy(). In C++ this shall also work for Standard Template Library (STL) Headers, that is "#include " is auto-(query-)included when the user completes the expression "std::vector". The logic for these lookups and insertions already exists. What now remains is the logic for sensing when this is needed. My suggestion is to make Emacs call a function each time a character is inserted into buffer and then check if we are currently standing behind such a use pattern. I believe looking-back() is usable here. We also need to check that the cursor is *NOT* currently standing inside a comment or string; How do I query such a context? If any one is interested in using this add-ons I will gladly send it to you. Many Thanks in advance, Nordl=F6w