I'm running (Mac OS X Carbon) Emacs from CVS as of about two weeks ago, and slime CVS as of right now.
Some of the slime faces are being set up strangely and kind of wrong.
Here is my default face:
Default face: (sample) Hide Face State: this face is unchanged from its standard setting. Basic default face. Parent groups: Basic Faces Attributes: [X] Font Family: apple-monaco [X] Width: Value Menu medium [X] Height: Value Menu Height in 1/10 pt: 96 [X] Weight: Value Menu medium [X] Slant: Value Menu normal [X] Underline: Value Menu Off [X] Overline: Value Menu Off [X] Strike-through: Value Menu Off [X] Box around text: Value Menu Off [X] Inverse-video: Value Menu Off [X] Foreground: white (sample) [X] Background: black (sample) [X] Stipple: Value Menu None [ ] Inherit: *
Most of the slime faces are set up properly:
Slime Error Face:(sample) Hide Face State: this face is unchanged from its standard setting. Face for errors from the compiler. Parent groups: Slime Attributes: [ ] Font Family: * [ ] Width: * [ ] Height: * [ ] Weight: * [ ] Slant: * [X] Underline: Value Menu Colored: red (sample) [ ] Overline: * [ ] Strike-through: * [ ] Box around text: * [ ] Inverse-video: * [ ] Foreground: * [ ] Background: * [ ] Stipple: * [ ] Inherit: *
However, some of the faces (slime-highlight-face, slime-repl-input-face, and slime-repl-output-face) are strange:
Slime Repl Input Face:(sample) Hide Face State: this face is unchanged from its standard setting. Face for previous input in the SLIME REPL. Parent groups: Slime Attributes: [X] Font Family: apple-monaco [X] Width: Value Menu medium [X] Height: Value Menu Height in 1/10 pt: 116 [X] Weight: Value Menu bold [X] Slant: Value Menu normal [X] Underline: Value Menu Off [ ] Overline: * [ ] Strike-through: * [ ] Box around text: * [ ] Inverse-video: * [ ] Foreground: * [ ] Background: * [ ] Stipple: * [ ] Inherit: *
Notice how it's not properly inheriting, and the Height parameter is larger than my default face! (116 is the _default_ default face, not my default). This means that some things get huge and out of alignment.
(Mac rant: Sadly, even if this weren't the case, Monaco, which is by far the best monospace font on the Mac, has a bold face that's wider than its normal one! I do not understand how this could ever be acceptible in a supposedly "monospace" font! But the size difference above just makes it even worse.)
By the way, congratulations on slime-repl! It's the first time I've been able to write something like
(progn (format t "Enter foo: ") (read))
and had "Enter foo: " actually appear before the read in Emacs. That doesn't work in *inferior-lisp* or ilisp's listener.
-bcd
Brian Downing bdowning@lavos.net writes:
Notice how it's not properly inheriting, and the Height parameter is larger than my default face! (116 is the _default_ default face, not my default). This means that some things get huge and out of alignment.
The problem is caused by some code that tried to be clever and used the font name of the default "highlight" face for the "slime-highlight-face". This seems to work for X windows, but apparently breaks horribly on Mac OS.
I removed that and you should get now the default size. Let me know if it is still broken.
By the way, congratulations on slime-repl! It's the first time I've been able to write something like
(progn (format t "Enter foo: ") (read))
and had "Enter foo: " actually appear before the read in Emacs. That doesn't work in *inferior-lisp* or ilisp's listener.
This is mostly an incident. We flush the output buffer before reading (due to some other problems). ILisp doesn't actually know that the Lisp is going to read input and so you see whatever the Lisp has printed so far. Flushing the output stream manually would also work with ILisp.
Helmut.
On Sat, Nov 08, 2003 at 10:03:12AM +0100, Helmut Eller wrote:
The problem is caused by some code that tried to be clever and used the font name of the default "highlight" face for the "slime-highlight-face". This seems to work for X windows, but apparently breaks horribly on Mac OS.
It does work now, thanks. I think it would have broken horribly for any platform if people changed their fonts at runtime.
Having looked at the code and seen the reason for this, would something like this be too complicated and horrible?
(defun slime-maybe-inherit (inherit-from otherwise) (if (>= emacs-major-version 21) `(t (:inherit ,inherit-from)) otherwise))
(defface slime-highlight-face (slime-maybe-inherit 'highlight `((((class color) (background light)) (:background "darkseagreen2")) (((class color) (background dark)) (:background "darkolivegreen")) (t (:inverse-video t)))) "Face for compiler notes while selected." :group 'slime)
or even the old...
(defface slime-highlight-face (slime-maybe-inherit 'highlight (slime-face-attributes 'highlight)) "Face for compiler notes while selected." :group 'slime)
-bcd
Brian Downing bdowning@lavos.net writes:
Having looked at the code and seen the reason for this, would something like this be too complicated and horrible?
(defun slime-maybe-inherit (inherit-from otherwise) (if (>= emacs-major-version 21) `(t (:inherit ,inherit-from)) otherwise))
Good idea. I've committed something similar. Those pesky defface forms require almost a PhD in Emacsology :-)
Helmut.