<pillton>
zyd: Well, technically you are asking, is there a way for emacs' CL indentation to be aware that it is inside the body of an ASDF:DEFSYSTEM operator?
<mon_key>
(put 'lisp-indent-function <VAL>)
<pillton>
zyd: Slime has a contrib called slime-indent which may be of use. The declarative language defined by ASDF:DEFSYSTEM may be too complicated for it.
akoana has quit [Quit: leaving]
Mon_Ouie has quit [Read error: No route to host]
skeemer has quit [Ping timeout: 264 seconds]
tyson2 has quit [Read error: Connection reset by peer]
decweb has joined #commonlisp
<zyd>
pillton: yeah ive had to disable that contrib because it causes indentation issues as well
<zyd>
but now im facing yet another indentation issue
<zyd>
it might just be that slime sucks (from accumulated cruft), because im trying Sly instead and not having any of the indentation issues.
<pillton>
I've been using Slime for over 15 years. I think it is great.
<zyd>
There are certain things I've liked more about slime that have kept me away from Sly, such as the M-p regex search in the repl, but not having busted indentation is going to make me switch.
istewart has joined #commonlisp
nij- has joined #commonlisp
decweb has quit [Ping timeout: 260 seconds]
green_ has quit [Ping timeout: 264 seconds]
Lord_of_Life has quit [Ping timeout: 252 seconds]
Lord_of_Life has joined #commonlisp
gxt_ has quit [Remote host closed the connection]
gxt_ has joined #commonlisp
green_ has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
josrr has quit [Remote host closed the connection]
mon_key has quit [Ping timeout: 240 seconds]
green_ has quit [Remote host closed the connection]
occ has quit [Ping timeout: 240 seconds]
mfiano has left #commonlisp [Bye, Common Lisp community]
occ has joined #commonlisp
dnhester` has quit [Ping timeout: 252 seconds]
decweb has joined #commonlisp
reb has quit [Remote host closed the connection]
reb has joined #commonlisp
<beach>
younder: Great!
<beach>
zyd: Emacs/SLIME indentation is disappointing, but that's mainly because it doesn't really analyze the code. We are working on something that will do that much better.
<beach>
I wouldn't say SLIME "sucks", but it is also very limited in what it can do because of the way it works.
<nij->
I guess sly is better? Not sure what is working on the indent.
<nij->
at least i'm fine with the indentation
<beach>
SLY might be better, but they both have intrinsic limitations that can't be easily fixed.
ronald has quit [Read error: Connection reset by peer]
ronald has joined #commonlisp
<nij->
What are the limitations?
<beach>
The fact that it doesn't really analyze the code the way a compiler does.
dnhester` has joined #commonlisp
<beach>
So for instance, in SLIME, if you do (let ((prog1 ...)) ...), then prog1 is highlighted as the Common Lisp operator even though it is a lexical variable.
<beach>
And if you hit RETURN after the PROG1, it will be indented as if it were that operator, whereas if you do the same thing with (let ((foo ...)) ...) the indentation will be different.
<nij->
Oh I see. The highlight does show as what you meant.
<beach>
Right, so it can't distinguish between different roles for a symbol. Because that requires (at least the first few passes of) a compiler.
<beach>
The good news is that we are working on such a thing.
<pillton>
I think the term "compiler" needs to be generalised here as I am not sure knowledge of CL compilation would help with the indentation of forms in the ASDF:DEFSYSTEM. Indentation of the forms for ASDF:DEFSYSTEM would need knowledge of the ASDF:DEFSYSTEM "compiler".
decweb has quit [Ping timeout: 260 seconds]
<beach>
A compiler might not be sufficient, sure. But it is often necessary.
dnhester` has quit [Ping timeout: 256 seconds]
<beach>
You might also have to program your indentation code.
<aeth>
I don't think it's even package-aware? This is actually kind of useful if you have a DSL (that uses packages, not an entire reader macro) with Lisp-like semantics because it will highlight let and let* and indent them correctly. Assuming you don't change their syntax at all, of course.
<aeth>
but that purple let* might not be cl:let*
<aeth>
or let in the case of your (let ((prog1 ...)) ...)
<beach>
Indeed, that's another fundamental limitation.
<beach>
I think the SLIME people (and later the SLY people) did a good job given what they had to work with, but something better is definitely desirable.
<aeth>
ASDF, though, has a particular issue in that it's not idiomatic, it's fancy and special and advanced and clever. So, yes, even beach's system might not handle it.
<aeth>
You may have to special case it entirely.
<beach>
Well, I am trying to come up with some kind of declarative notation for indentation, but I am having difficulties. Right now, the indentation code is just code and not that easy to write.
ymir has quit [Ping timeout: 264 seconds]
<aeth>
but will the declarative notation for indentation be able to indent itself?
<beach>
Sure, if it has a rule for itself.
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 260 seconds]
ymir has joined #commonlisp
nij- has quit [Remote host closed the connection]
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 252 seconds]
danza_ has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
istewart has quit [Quit: Konversation terminated!]
danza__ has joined #commonlisp
danza_ has quit [Read error: Connection reset by peer]
mulk has quit [Ping timeout: 255 seconds]
mulk has joined #commonlisp
zetef has joined #commonlisp
wacki has joined #commonlisp
rtypo has quit [Ping timeout: 268 seconds]
son0p has quit [Ping timeout: 255 seconds]
danza__ has quit [Ping timeout: 268 seconds]
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 255 seconds]
igemnace has joined #commonlisp
msavoritias has joined #commonlisp
pve has joined #commonlisp
msavoritias has quit [Ping timeout: 255 seconds]
ymir1 has joined #commonlisp
ymir has quit [Ping timeout: 264 seconds]
waleee has joined #commonlisp
zos has joined #commonlisp
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
occ has quit [Ping timeout: 260 seconds]
rgherdt has joined #commonlisp
mathrick has quit [Ping timeout: 260 seconds]
tok has joined #commonlisp
occ has joined #commonlisp
meritamen has joined #commonlisp
jjnkn has joined #commonlisp
mathrick has joined #commonlisp
meritamen has quit [Ping timeout: 260 seconds]
rogersm_ has joined #commonlisp
rogersm_ has quit [Remote host closed the connection]
rgherdt has quit [Ping timeout: 272 seconds]
iNomad has joined #commonlisp
zos has quit [Quit: Leaving]
msavoritias has joined #commonlisp
bendersteed has joined #commonlisp
mgl has joined #commonlisp
mi6x3m has joined #commonlisp
<mi6x3m>
hey does common lisp have something like clojure's comment form
<mi6x3m>
where I can quicky disable a form by prepending (comment ...
<jdz>
#-(and) and #+(and)
<jdz>
Or just #+comment if you want (when you know what that means).
danse-nr3 has quit [Remote host closed the connection]
dnhester` has quit [Ping timeout: 264 seconds]
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
Cymew has joined #commonlisp
dino_tutter has quit [Ping timeout: 268 seconds]
alcor has joined #commonlisp
donleo has joined #commonlisp
danse-nr3 has joined #commonlisp
aciep has joined #commonlisp
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach>
mi6x3m: I do suggest you join #clschool for these questions. There are people who hang out there specifically to help out, and they may not be here.
<beach>
mi6x3m: This channel is not really meant for basic questions like that. They are tolerated if the traffic is otherwise low, but #clschool is specifically meant for that purpose.
<mi6x3m>
I'd head over ther as well!
AndreiDuma has joined #commonlisp
skeemer has joined #commonlisp
chomwitt has quit [Ping timeout: 260 seconds]
dnhester` has joined #commonlisp
vn36 has joined #commonlisp
vn36 has quit [Client Quit]
yitzi has joined #commonlisp
traidare has joined #commonlisp
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
waleee has quit [Ping timeout: 256 seconds]
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
AndreiDuma has joined #commonlisp
roma1989 has joined #commonlisp
roma1989 has quit [Remote host closed the connection]
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AndreiDuma has joined #commonlisp
snits has quit [Quit: No Ping reply in 180 seconds.]
igemnace has quit [Read error: Connection reset by peer]
snits has joined #commonlisp
zetef has joined #commonlisp
ebrasca has joined #commonlisp
attila_lendvai has joined #commonlisp
chiselfuse has quit [Ping timeout: 260 seconds]
chiselfuse has joined #commonlisp
dnhester` has quit [Ping timeout: 260 seconds]
mm007emko has quit [Ping timeout: 255 seconds]
mm007emko has joined #commonlisp
igemnace has joined #commonlisp
ebrasca has quit [Ping timeout: 260 seconds]
pillton has quit [Remote host closed the connection]
tok has quit [Ping timeout: 260 seconds]
zetef has quit [Ping timeout: 260 seconds]
hirez has quit [Ping timeout: 264 seconds]
brokkoli_origin has quit [Ping timeout: 264 seconds]
Alfr has quit [Killed (tantalum.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
reb` has joined #commonlisp
attila_lendvai_ has joined #commonlisp
donlcn has joined #commonlisp
son0p has quit [Ping timeout: 260 seconds]
mi6x3m has quit [Read error: Connection reset by peer]
bendersteed has quit [Read error: Connection reset by peer]
attila_lendvai has quit [Read error: Connection reset by peer]
jfloren has quit [Read error: Connection reset by peer]
snits has quit [Ping timeout: 260 seconds]
mi6x3m-alt has joined #commonlisp
tok has joined #commonlisp
snits has joined #commonlisp
hirez has joined #commonlisp
donleo has quit [Ping timeout: 260 seconds]
reb has quit [Ping timeout: 260 seconds]
brokkoli_origin has joined #commonlisp
jjnkn has quit [Ping timeout: 240 seconds]
bendersteed has joined #commonlisp
aciep has quit [Ping timeout: 272 seconds]
tok has quit [Ping timeout: 252 seconds]
bendersteed has quit [Quit: bendersteed]
tok has joined #commonlisp
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
triffid has quit [Ping timeout: 260 seconds]
aciep has joined #commonlisp
mm007emko has quit [Quit: Quit]
mm007emko has joined #commonlisp
tok has quit [Ping timeout: 260 seconds]
tok has joined #commonlisp
triffid has joined #commonlisp
varjag has joined #commonlisp
decweb has joined #commonlisp
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
chomwitt has joined #commonlisp
traidare has quit [Ping timeout: 260 seconds]
emilknievel has joined #commonlisp
random-nick has joined #commonlisp
danse-nr3 has quit [Ping timeout: 252 seconds]
ronald has quit [Ping timeout: 252 seconds]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
ronald has joined #commonlisp
dnhester` has joined #commonlisp
yitzi has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
danse-nr3 has joined #commonlisp
dnhester` has quit [Ping timeout: 240 seconds]
nij- has joined #commonlisp
tok has quit [Remote host closed the connection]
waleee has joined #commonlisp
triffid has quit [Quit: triffid]
AndreiDuma has joined #commonlisp
<zyd>
beach: will your work on indentation be available to others working on other editors or is it meant to be specific to the editor you're working on?
<zyd>
I know that slime/sly use cl code in the backend, so wonder if they will be able to take advantage
<beach>
zyd: Right now it is specific, but I need to come up with a declarative syntax to defined it, so then it could be reused.
<beach>
I was under the impression that the SLIME indentation code was written in Emacs Lisp.
<zyd>
it is, im wondering if it can be written in CL instead, or some parts of it
alcor has quit [Remote host closed the connection]
<beach>
Maybe. Then the SWANK protocol would have to include ways to communicate indentation.
<nij->
LSP should talk to emacs and the lisp in that scenario.
nij- has quit [Remote host closed the connection]
reb` has quit [Remote host closed the connection]
son0p has joined #commonlisp
jjnkn has joined #commonlisp
reb` has joined #commonlisp
skeemer has quit [Ping timeout: 260 seconds]
alcor has joined #commonlisp
AndreiDuma has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<zyd>
I suppose it just needs to be for more than macros.
<beach>
That will make it easier.
tyson2 has quit [Read error: Connection reset by peer]
<jjnkn>
How can I create an output stream with element type UNSIGNED-BYTE similary to MAKE-STRING-OUTPUT-STREAM? The standard mentions only file and string streams, leaving aside composite streams. Do I have to create a temporary file after all?