comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: GPS issues: laundry list
Date: Wed, 12 Sep 2012 07:53:21 -0400
Date: 2012-09-12T07:53:21-04:00	[thread overview]
Message-ID: <854nn34fv2.fsf@stephe-leake.org> (raw)

I've only been using GPS a couple of days, but I've got a list of things
that need to be better for me to continue using it:

- The help system is not searchable. I can search within individual pages in
  the web browser, but not within whole documents.

- I can't find a list of current key bindings, neither for a single key,
  nor for all keys. There may be a way to do it, but I couldn't find that
  in the help system (did I mention that's not searchable?)

- I can't change the environment PATH from within GPS. I do this often,
  to change compilers (GNAT 6.3 for frozen projects, 7.0.1 for new,
  Cygwin g++ for monotone, etc).

- I can't change the environment ADA_PROJECT_PATH from within GPS. I
  change that more often than the compiler; typically each project
  requires a different path (mms_version_07, _06; gpm vs mms, lynx 4 vs
  lynx 5, etc). For compiling, I can set it in a Makefile, but GPS
  itself needs it when parsing project files.

  In Emacs Ada mode, setting the 'current project' also sets
  ADA_PROJECT_PATH.

- I can work around the above two by writing shell scripts to set the
  environment, then launch GPS. But then I often end up with two GPS
  running, and I get confused which is which, and they fight each other
  over saving global settings on exit. And exiting my primary interface
  with the computer is annoying; I lose all the ancilliary buffers I had
  open (like the list of things to do today).

- no monotone support in GPS. I had to add that to Emacs as well, so
  that's expected. But it will probably be much harder to get the same
  level of support in GPS, since there was already support for generic
  distributed version control systems in Emacs, and in general writing
  GUI tools is much easier in an interactive environment (although I'm
  not clear on the trade-off between Python and Ada in GPS).

- tab completion and regexp name match on switch buffers. I often have
  dozens of buffers open; tab navigation just does not work in that scenario.

There are some nice things about GPS; the context menus (right click on
an identifier) in particular are much better than in Emacs. And the
indentation engine supports Ada 2012. But that is much less significant
than the above (for me, anyway).

There's no technical reason all of the above could not be implemented in
GPS; that would go a long way toward making it competitive with Emacs.

I think the hardest one to fix is the help system. Help in Emacs is
tightly integrated with Emacs lisp; every lisp function has a doc
string, and the help system can display it, along with a link to the
actual source. Similar for key bindings. You can't do that when you are
displaying help in a separate web browser. But such functionality is
critical when working on writing new features for the system (or fixing
bugs in the existing code). Which I do all the time :).  

But at least it needs a search engine on the GPS documents. I don't
actually know how to that, but such things are clearly possible.

GPS is in Debian, and we could contribute patches to that. But unless
there is a functioning process of merging those patches back into the
main stream, it will be hard to maintain those patches as new versions
of GPS are released.

I understand AdaCore's desire (and commercial need) to maintain control,
in particular to maintain high quality. But perhaps there is some way to
allow more user contribution.

-- 
-- Stephe



             reply	other threads:[~2012-09-15  1:10 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-12 11:53 Stephen Leake [this message]
2012-09-12 12:35 ` GPS issues: laundry list Dmitry A. Kazakov
2012-09-13 10:55   ` Stephen Leake
2012-09-13 12:37     ` Dmitry A. Kazakov
2012-09-13 15:38       ` mark.lorenzen
2012-09-13 16:37         ` Dmitry A. Kazakov
2012-09-14  8:11         ` Stephen Leake
2012-09-14  7:51       ` Stephen Leake
2012-09-14  8:35         ` Dmitry A. Kazakov
2012-09-15  7:45           ` Stephen Leake
2012-09-15  8:25             ` Dmitry A. Kazakov
2012-09-15  9:41               ` Ludovic Brenta
2012-09-15 11:29                 ` Dmitry A. Kazakov
2012-09-17 21:35                   ` Stephen Leake
2012-09-18  8:03                     ` Dmitry A. Kazakov
2012-09-19  1:54                       ` CM tools vs versions Stephen Leake
2012-09-19  7:51                         ` Dmitry A. Kazakov
2012-09-17 21:32               ` GPS issues: laundry list Stephen Leake
2012-09-18  8:35                 ` Dmitry A. Kazakov
2012-09-13 14:09     ` Markus Schöpflin
2012-09-13 16:37       ` Simon Wright
2012-09-14  8:18         ` Stephen Leake
2012-09-14  9:14           ` Simon Wright
2012-09-14  8:17       ` Stephen Leake
2012-09-12 19:03 ` Simon Wright
2012-09-13  9:46   ` Marius Amado-Alves
2012-09-13 10:08     ` Simon Wright
2012-09-13 12:41     ` Dmitry A. Kazakov
2012-09-13 15:41       ` Marius Amado-Alves
2012-09-13 16:08         ` AdaMagica
2012-09-14  7:34         ` Stephen Leake
2012-09-13 16:26       ` Simon Wright
2012-09-13 10:58   ` Emacs mtn support Stephen Leake
2012-09-13 12:13     ` Simon Wright
2012-09-13 17:18       ` Simon Wright
2012-09-14  8:27         ` Stephen Leake
2012-09-14  9:15           ` Simon Wright
2012-09-14  8:24       ` Stephen Leake
2012-09-14  9:20         ` Simon Wright
2012-09-15  7:55           ` Stephen Leake
2012-09-13 15:30     ` J-P. Rosen
2012-09-14  8:51 ` GPS issues: laundry list Egil Høvik
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox