From nikodemus at random-state.net Sat Jun 7 12:52:59 2008 From: nikodemus at random-state.net (Nikodemus Siivola) Date: Sat, 7 Jun 2008 15:52:59 +0300 Subject: [climacs-devel] Some Climacs issues Message-ID: <633d72b0806070552w1a389abfl3f6d5a88d78f9f71@mail.gmail.com> 1. C-x C-f foo.lisp, then Menu: Help->Describe Bindings Window splits into two views, and the Lisp view remains the active one. C-x C-b switches to the Help view, but the only visual clue that it is indeed the active one is that the cursor in the Lisp view turns blue. If there are multiple cursorless views visible, it is impossible to tell which one is currently active -- at least as far as I can tell. 2. Lack of cursor-motion keybindings in the Help view is another thing, but I'm sure you knew that one. :) 3. Finally, mousing over the binding names in the Help view leaves the focus boxe visible after the pointer moves over another binding name. Scrolling clears the focus boxes. If one or more of these are likely to be simplish to fix, I would not be averse to hints as to where to look. Cheers, -- Nikodemus From athas at sigkill.dk Sat Jun 7 13:07:25 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Sat, 07 Jun 2008 15:07:25 +0200 Subject: [climacs-devel] Some Climacs issues In-Reply-To: <633d72b0806070552w1a389abfl3f6d5a88d78f9f71@mail.gmail.com> (Nikodemus Siivola's message of "Sat, 7 Jun 2008 15:52:59 +0300") References: <633d72b0806070552w1a389abfl3f6d5a88d78f9f71@mail.gmail.com> Message-ID: <874p85o0ky.fsf@lambda.athas.dyndns.dk> "Nikodemus Siivola" writes: > 1. C-x C-f foo.lisp, then Menu: Help->Describe Bindings > > Window splits into two views, and the Lisp view remains the active > one. C-x C-b switches to the Help view, but the only visual clue that > it is indeed the active one is that the cursor in the Lisp view turns > blue. If there are multiple cursorless views visible, it is impossible > to tell which one is currently active -- at least as far as I can > tell. I've been thinking about this now and again, and there are many ways to fix it I think. One idea I've had is to encapsulate each window in a border pane and disable/enable the borders when the active window changes. > 2. Lack of cursor-motion keybindings in the Help view is another > thing, but I'm sure you knew that one. :) This is hard to fix, because there isn't a cursor at all in the Help view. > 3. Finally, mousing over the binding names in the Help view leaves the > focus boxe visible after the pointer moves over another binding name. > Scrolling clears the focus boxes. Yeah... this bug exists in the first 150 lines of climacs/typeout.lisp or so and is related to the great lengths Climacs go to in order to make typeout views transparent for the programmer. I'm not sure how easy it is to fix, but it's not likely to require much code. -- \ Troels /\ Henriksen From nikodemus at random-state.net Sat Jun 7 13:23:11 2008 From: nikodemus at random-state.net (Nikodemus Siivola) Date: Sat, 7 Jun 2008 16:23:11 +0300 Subject: [climacs-devel] Some Climacs issues In-Reply-To: <874p85o0ky.fsf@lambda.athas.dyndns.dk> References: <633d72b0806070552w1a389abfl3f6d5a88d78f9f71@mail.gmail.com> <874p85o0ky.fsf@lambda.athas.dyndns.dk> Message-ID: <633d72b0806070623u199d75b6ked08b0df3273e259@mail.gmail.com> On Sat, Jun 7, 2008 at 4:07 PM, Troels Henriksen wrote: > I've been thinking about this now and again, and there are many ways > to fix it I think. One idea I've had is to encapsulate each window in > a border pane and disable/enable the borders when the active window > changes. Borders would be great. >> 3. Finally, mousing over the binding names in the Help view leaves the >> focus boxe visible after the pointer moves over another binding name. >> Scrolling clears the focus boxes. > > Yeah... this bug exists in the first 150 lines of climacs/typeout.lisp > or so and is related to the great lengths Climacs go to in order to > make typeout views transparent for the programmer. I'm not sure how > easy it is to fix, but it's not likely to require much code. Semi-relatedly: what is the best way to discover what kind of an object a given view is? Is there a way to make right-click offer me a "Descibe Pane" or something like that for any and all panes? Cheers, -- Nikodemus From athas at sigkill.dk Sat Jun 7 13:29:47 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Sat, 07 Jun 2008 15:29:47 +0200 Subject: [climacs-devel] Some Climacs issues In-Reply-To: <633d72b0806070623u199d75b6ked08b0df3273e259@mail.gmail.com> (Nikodemus Siivola's message of "Sat, 7 Jun 2008 16:23:11 +0300") References: <633d72b0806070552w1a389abfl3f6d5a88d78f9f71@mail.gmail.com> <874p85o0ky.fsf@lambda.athas.dyndns.dk> <633d72b0806070623u199d75b6ked08b0df3273e259@mail.gmail.com> Message-ID: <87zlpxmkz8.fsf@lambda.athas.dyndns.dk> "Nikodemus Siivola" writes: > Semi-relatedly: what is the best way to discover what kind of an > object a given view is? Is there a way to make right-click offer me a > "Descibe Pane" or something like that for any and all panes? For my own hacking, I use this set of commands: (define-command (com-inspect-buffer :name "Inspect Buffer" :command-table base-table) () (clouseau:inspector (current-buffer))) (define-command (com-inspect-frame :name "Inspect Frame" :command-table base-table) () (clouseau:inspector *esa-instance*)) (define-command (com-inspect-window :name "Inspect Current Window" :command-table base-table) () (clouseau:inspector (current-window))) (define-command (com-inspect-syntax :name "Inspect Syntax" :command-table base-table) () (clouseau:inspector (current-syntax))) -- \ Troels /\ Henriksen From mathrick at gmail.com Fri Jun 13 15:04:24 2008 From: mathrick at gmail.com (Maciej Katafiasz) Date: Fri, 13 Jun 2008 15:04:24 +0000 (UTC) Subject: [climacs-devel] Build breakage: missing class CHAR-CODE-LIST-LEXEME Message-ID: Hi all, ===================================================================== There is no class named climacs-prolog-syntax::char-code-list-lexeme. [Condition of type simple-error] Restarts: 0: [try-recompiling] Recompile prolog2paiprolog and try loading it again 1: [retry] Retry performing # on #. 2: [accept] Continue, treating # on # as having been successful. 3: [abort] Abort SLIME compilation. 4: [abort] Return to SLIME's top level. 5: [terminate-thread] Terminate this thread (#) ===================================================================== I get that trying to build Climacs (manually) checked out today, along with all dependencies (that is, flexistream, McClim, CLX). Any idea what it is about? The class references are apparently not new, they have been there in a clbuild checkout from long ago which I had, but I don't recall it breaking with that. Cheers, Maciej From mathrick at gmail.com Fri Jun 13 15:27:27 2008 From: mathrick at gmail.com (Maciej Katafiasz) Date: Fri, 13 Jun 2008 15:27:27 +0000 (UTC) Subject: [climacs-devel] UI issues: Meta and completion display Message-ID: Hi, it seems that there's no way to get minibuffer to display a list of possible completions (ie. the thing you get by dashing TAB). That is a huge setback if you're trying to see what might be applicable. Another thing is that Climacs apparently doesn't see my Alt at all, which I'd very much like it to see as Meta. Otherwise I'm left with ESC-, and that's not the most funniest way to get at things. Cheers, Maciej PS. Related to my blind searching above, is there a REPL to be had in Lisp mode? From athas at sigkill.dk Fri Jun 13 15:28:12 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Fri, 13 Jun 2008 17:28:12 +0200 Subject: [climacs-devel] Build breakage: missing class CHAR-CODE-LIST-LEXEME In-Reply-To: (Maciej Katafiasz's message of "Fri, 13 Jun 2008 15:04:24 +0000 (UTC)") References: Message-ID: <871w319wxf.fsf@lambda.athas.dyndns.dk> Maciej Katafiasz writes: > Hi all, > > ===================================================================== > There is no class named climacs-prolog-syntax::char-code-list-lexeme. > [Condition of type simple-error] Do you mess around with your read-table? In prolog-syntax.lisp:101 is the expression that creates the name of these lexeme classes. If it's broken, I would appreciate it if you could figure out how to fix it (it seems okay to me, though). -- \ Troels /\ Henriksen From athas at sigkill.dk Fri Jun 13 15:33:15 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Fri, 13 Jun 2008 17:33:15 +0200 Subject: [climacs-devel] UI issues: Meta and completion display In-Reply-To: (Maciej Katafiasz's message of "Fri, 13 Jun 2008 15:27:27 +0000 (UTC)") References: Message-ID: <87tzfx8i4k.fsf@lambda.athas.dyndns.dk> Maciej Katafiasz writes: > it seems that there's no way to get minibuffer to display a list of > possible completions (ie. the thing you get by dashing TAB). That is a > huge setback if you're trying to see what might be applicable. You can right-click the mouse to get a list of completions, and there's also some keyboard gesture that I can never remember... try C-/. > Another thing is that Climacs apparently doesn't see my Alt at all, which > I'd very much like it to see as Meta. Otherwise I'm left with ESC-, and > that's not the most funniest way to get at things. How does xev see your Alt key? Even better, how does CLIM see it? Open a Lisp syntax buffer in Climacs, evaluate (describe (clim:read-gesture)), then press your Alt key. > PS. Related to my blind searching above, is there a REPL to be had in > Lisp mode? No, but if you evaluate stuff from the buffer, output will be visible in a special view. Also, if you push stuff onto the kill ring from Climacs, you can yank it in the CLIM Listener. -- \ Troels /\ Henriksen From mathrick at gmail.com Fri Jun 13 15:50:22 2008 From: mathrick at gmail.com (Maciej Katafiasz) Date: Fri, 13 Jun 2008 15:50:22 +0000 (UTC) Subject: [climacs-devel] Re: Build breakage: missing class CHAR-CODE-LIST-LEXEME References: <871w319wxf.fsf@lambda.athas.dyndns.dk> Message-ID: Den Fri, 13 Jun 2008 17:28:12 +0200 skrev Troels Henriksen: > Maciej Katafiasz writes: > >> Hi all, >> >> ===================================================================== >> There is no class named climacs-prolog-syntax::char-code-list-lexeme. >> [Condition of type simple-error] > > Do you mess around with your read-table? In prolog-syntax.lisp:101 is > the expression that creates the name of these lexeme classes. If it's > broken, I would appreciate it if you could figure out how to fix it (it > seems okay to me, though). No longer READ-TABLE, but I do mess with *PRINT-CASE* (I have it at :DOWNCASE). Lemme take a look at it, though I suspect it's due to there being (format nil "~A" 'foo) instead of (format nil "~A" (symbol- name 'foo)). Cheers, Maciej From mathrick at gmail.com Fri Jun 13 19:19:03 2008 From: mathrick at gmail.com (Maciej Katafiasz) Date: Fri, 13 Jun 2008 19:19:03 +0000 (UTC) Subject: [climacs-devel] Re: Build breakage: missing class CHAR-CODE-LIST-LEXEME References: <871w319wxf.fsf@lambda.athas.dyndns.dk> Message-ID: Den Fri, 13 Jun 2008 15:50:22 +0000 skrev Maciej Katafiasz: > No longer READ-TABLE, but I do mess with *PRINT-CASE* (I have it at > :DOWNCASE). Lemme take a look at it, though I suspect it's due to there > being (format nil "~A" 'foo) instead of (format nil "~A" (symbol- name > 'foo)). Okay, that was indeed it. Below is a patch, with a couple of remarks: 1) I don't know where to put FORMAT-SYM. It should be in some widely- accessible place, ideally a CL-UTILS package of sorts, so that hopefully people will finally get it right wrt. symbols and case... Anyway, Clim(acs) package structure confuses me to no end, what with :CLIM and friends not using :CL for example. So here you have the code, and you pick where to stick it in. (defun format-sym (format-string &rest args) "Return FORMAT-STRING with args spliced in, where all arguments that are symbols with have their SYMBOL-NAME spliced instead, this makes sure the result is correct even on systems where read/print case is other than default." (apply #'format nil format-string (mapcar (lambda (arg) (if (symbolp arg) (symbol-name arg) arg)) args))) 2) Not directly related, but I stumbled upon the following odd snippet. Why doesn't it simply return "C"? [c-syntax.lisp:49] (defmethod name-for-info-pane ((syntax c-syntax) &key pane) (declare (ignore pane)) (format nil "C")) 3) And finally, the patch against Climacs CVS. I tried to identify all spots where I believe symbols were being manipulated, tell me if I got something wrong or missed anything. Similar treatment would be in order for the entirety of McCLIM, I imagine, but I want to stick just to Climacs first. Cheers, Maciej cvs diff: Diffing . Index: climacs-lisp-syntax.lisp =================================================================== RCS file: /project/climacs/cvsroot/climacs/climacs-lisp-syntax.lisp,v retrieving revision 1.16 diff -u -r1.16 climacs-lisp-syntax.lisp --- climacs-lisp-syntax.lisp 5 Feb 2008 22:07:30 -0000 1.16 +++ climacs-lisp-syntax.lisp 13 Jun 2008 19:16:07 -0000 @@ -422,7 +422,7 @@ (with-drawing-options (stream :ink +dark-blue+ :text-style (make-text- style :fixed nil nil)) (princ (dspec item) stream)))) - (climacs-gui:with-typeout-view (stream (format nil "~A ~A" type symbol)) + (climacs-gui:with-typeout-view (stream (format-sym "~A ~A" type symbol)) (loop for xref in xrefs do (with-output-as-presentation (stream xref 'xref) (printer xref stream)) Index: prolog-syntax.lisp =================================================================== RCS file: /project/climacs/cvsroot/climacs/prolog-syntax.lisp,v retrieving revision 1.37 diff -u -r1.37 prolog-syntax.lisp --- prolog-syntax.lisp 11 Feb 2008 22:50:27 -0000 1.37 +++ prolog-syntax.lisp 13 Jun 2008 19:16:08 -0000 @@ -98,7 +98,7 @@ (defmethod syntactic-lexeme ((lexeme prolog-lexeme)) lexeme) (macrolet ((def ((name &optional tokenp) &rest subs) - (flet ((f (x) (intern (format nil "~A-~A" x '#:lexeme)))) + (flet ((f (x) (intern (format-sym "~A-~A" x '#:lexeme)))) `(progn (defclass ,(f name) (prolog-lexeme) ()) cvs diff: Diffing Doc cvs diff: Diffing Persistent cvs diff: Diffing cl-automaton cvs diff: Diffing testing From mathrick at gmail.com Fri Jun 13 19:28:56 2008 From: mathrick at gmail.com (Maciej Katafiasz) Date: Fri, 13 Jun 2008 19:28:56 +0000 (UTC) Subject: [climacs-devel] Re: UI issues: Meta and completion display References: <87tzfx8i4k.fsf@lambda.athas.dyndns.dk> Message-ID: Den Fri, 13 Jun 2008 17:33:15 +0200 skrev Troels Henriksen: > Maciej Katafiasz writes: > >> it seems that there's no way to get minibuffer to display a list of >> possible completions (ie. the thing you get by dashing TAB). That is a >> huge setback if you're trying to see what might be applicable. > > You can right-click the mouse to get a list of completions, and there's > also some keyboard gesture that I can never remember... try C-/. > >> Another thing is that Climacs apparently doesn't see my Alt at all, >> which I'd very much like it to see as Meta. Otherwise I'm left with >> ESC-, and that's not the most funniest way to get at things. > > How does xev see your Alt key? Even better, how does CLIM see it? Open a > Lisp syntax buffer in Climacs, evaluate (describe (clim:read-gesture)), > then press your Alt key. Okay, so it says key-name :alt-left, there's more info, but no way to copy or paste it, so the best I could do is to give you a screenshot :). Incidentally, there's also no way to paste into Climacs from the outside world, neither PRIMARY (ie. middle click) nor CLIPBOARD (ie. clipboard) seem to work. >> PS. Related to my blind searching above, is there a REPL to be had in >> Lisp mode? > > No, but if you evaluate stuff from the buffer, output will be visible in > a special view. Also, if you push stuff onto the kill ring from Climacs, > you can yank it in the CLIM Listener. Ah, I see. And is there a way to get a listener inside Climacs? Cheers, Maciej From athas at sigkill.dk Sun Jun 15 08:57:17 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Sun, 15 Jun 2008 10:57:17 +0200 Subject: [climacs-devel] Re: UI issues: Meta and completion display In-Reply-To: (Maciej Katafiasz's message of "Fri, 13 Jun 2008 19:28:56 +0000 (UTC)") References: <87tzfx8i4k.fsf@lambda.athas.dyndns.dk> Message-ID: <874p7vvzwy.fsf@lambda.athas.dyndns.dk> Maciej Katafiasz writes: > Okay, so it says key-name :alt-left, there's more info, but no way to > copy or paste it, so the best I could do is to give you a screenshot :). > Incidentally, there's also no way to paste into Climacs from the outside > world, neither PRIMARY (ie. middle click) nor CLIPBOARD (ie. clipboard) > seem to work. Actually, for arcane reasons, you can copy from the *standard-output* view by holding down Shift and selecting the text with the mouse while holding down the primary button. You're correct that there's no way to paste from the outside world into Climacs, however, and fixing that will require some additional work on McCLIM (CLIM does not specify a standard way to access the clipboard). > Ah, I see. And is there a way to get a listener inside Climacs? No. -- \ Troels /\ Henriksen From athas at sigkill.dk Sun Jun 15 09:13:07 2008 From: athas at sigkill.dk (Troels Henriksen) Date: Sun, 15 Jun 2008 11:13:07 +0200 Subject: [climacs-devel] Re: Build breakage: missing class CHAR-CODE-LIST-LEXEME In-Reply-To: (Maciej Katafiasz's message of "Fri, 13 Jun 2008 19:19:03 +0000 (UTC)") References: <871w319wxf.fsf@lambda.athas.dyndns.dk> Message-ID: <87y757ukm4.fsf@lambda.athas.dyndns.dk> Maciej Katafiasz writes: > 1) I don't know where to put FORMAT-SYM. It should be in some widely- > accessible place, ideally a CL-UTILS package of sorts, so that hopefully > people will finally get it right wrt. symbols and case... Anyway, > Clim(acs) package structure confuses me to no end, what with :CLIM and > friends not using :CL for example. So here you have the code, and you > pick where to stick it in. I put it in ESA-UTILS, which just happens to be the util package I have available without adding more dependencies. The package structure for CLIM programs is actually fairy simple: instead of USEing CL, you USE CLIM-LISP. That's all there is to it. > 2) Not directly related, but I stumbled upon the following odd snippet. > Why doesn't it simply return "C"? > > [c-syntax.lisp:49] > > (defmethod name-for-info-pane ((syntax c-syntax) &key pane) > (declare (ignore pane)) > (format nil "C")) Probably just copied from Lisp syntax, which used to create a more interesting string. > 3) And finally, the patch against Climacs CVS. I tried to identify all > spots where I believe symbols were being manipulated, tell me if I got > something wrong or missed anything. Similar treatment would be in order > for the entirety of McCLIM, I imagine, but I want to stick just to > Climacs first. Looks fine to me, I just committed it. Thanks! -- \ Troels /\ Henriksen