Which IDE do you use?

thanks luka!
got the gui showing and seems to be working :wink:

I did get this message in the post-window though, is this normal? The help browser works anyway, but was just curious if you guys are getting the same thing as well.

JavaScript Message: WebSocket connection to ‘ws://localhost:12344/’ failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
JavaScript Message: WebChannel error: [object Event]

By the way, have you guys tried using w3m for the help browser as mentioned on the scel github page?
I seems to be getting this bytecompile error when installing w3m and while I am able to get w3m to open the help page, it seems it’s not able to search for anything for some reason. :thinking: In the gui help browser things would show up as you type what you want to find in the search box, but w3m requires you to actually click the search link, but then nothing ever shows up when you click the search link.

I also see those JavaScript errors. I have a feeling they are connected with the fact that you cannot evaluate code within the HelpBrowser when using Emacs as IDE. But that’s speculative.

As for w3m, I have a feeling that when those enchancements came to create more modern Help system it also broke the compatibility with non-javascript text browsers like w3m. I’m speculating again, but I have a feeling that HelpDocs compatibility with w3m is broken. It doesn’t work for me for a while now. But some devs should be asked for clarification. I also faintly recall that some Emacs users where kinda pissed about it a while ago.

Ah! I see - just wanted to make sure it’s not just me :yum:

i get this in the post window when supercollider starts up; immediately after compilation of the class library:

Open ended symbol started on line 225 of file ‘/home/rue/.local/share/SuperCollider/Extensions/sc/SCVim.sc’

Ah yeah, my mistake. I’ve gotten accustomed to ignoring the “open ended symbol” warning because it doesn’t actually cause any problems that I’ve ever noticed in practice.

Incidentally the line in question is:

methSearchString = format('/% %/;"'.asString, methName, 123.asAscii);

If you interpret '/% %/;"'.class, you’ll see that it’s a valid symbol, but it’s also easy to see how the unmatched quote inside the symbol could trigger a warning. No time to really dig into this, but at least on my end (macos 10.12.6, sc 3.10.0, iterm2/tmux/current vim from homebrew) it works fine. Sorry for any confusion!

I’d suggest to file a bug with the SCVim module.

It looks like the author is using a Symbol with asString as a workaround to include a quote mark. But it’s more direct to use a backslash to escape the quote. Then you can skip asString (more efficient).

methSearchString = format("/% %/;\"", methName, 123.asAscii);

Actually I’m not sure if this will make the “open ended symbol” message go away. This is printed only when compiling the class library, not when running code interactively, and I don’t feel like making a test class just to check this out. But I think this is a better way to write it.

hjh

OK, on-topic reply: I use the IDE, because both autocompletion and method argument templates are extremely important to me. I’d go so far as to say that I can’t use SC without them.

I used sc-el for some years before the IDE. Actually, I wouldn’t mind giving that a try again… but, if autocompletion and method argument templates are not complete and working smoothly, then I really can’t. When jmt2080ad says, “No, just tab complete really, and it’s spotty,” I’m afraid… nope, I couldn’t live with that.

Some years ago, somebody had forked scel and improved these features, but then the main line of development diverged too much and I’m pretty sure a/ I couldn’t find that fork now and b/ it wouldn’t work if I did. But it was not too bad.

If I had time and Emacs-lisp chops, I would create an Emacs mode for my live-coding system… but the time I would spend doing that would be time not spent making music, so… probably not going to happen.

hjh

2 Likes

Yes, I absolutely agree on principle. However, it turns out that replacing the coerced symbol '/% %/;"'.asString with the equivalent string "/% %/;\"" causes the lexer to throw a fatal error that prevents the class library from compiling. I’ve done a bit of digging from here and could go into more detail, but this is already a bit of a tangent!

However, it turns out that replacing the coerced symbol '/% %/;"'.asString with the equivalent string "/% %/;\"" causes the lexer to throw a fatal error that prevents the class library from compiling.

Not on my machine…

TestStringParser {
	*initClass {
		"/% %/;\"".format("a", "b").postln;
	}
}
compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
/a b/;"
Class tree inited in 0.03 seconds

What environment are you using? (I realize this is a bit OT, but if you can’t compile that string, it’s a bug… and the bug isn’t happening everywhere, so we should figure out where that’s happening.)

hjh

Sure, the test class works as expected for me as well. It’s not a matter of not being able to compile the string; I made a test branch of SCVim on my machine and made the change directly in SCVim.sc, changing line 224 from:

methSearchString = format('/% %/;"'.asString, methName, 123.asAscii);

to:

methSearchString = format("/% %/;\"", methName, 123.asAscii);

After having made that change, the actual error thrown by the lexer is:

ERROR: Parse error
  in file '/Users/tranquilitybass/Library/Application Support/SuperCollider/Extensions/SCVim.sc'
  line 234 char 1:

  } // end class
  ^
-----------------------------------
unmatched '}'
  in file '/Users/tranquilitybass/Library/Application Support/SuperCollider/Extensions/SCVim.sc' line 234 char 1
Expected class name.  got token: '}' 280
  in file '/Users/tranquilitybass/Library/Application Support/SuperCollider/Extensions/SCVim.sc'
  line 234 char 1:

  } // end class
  ^
-----------------------------------

…which is unexpected to say the least. No time to look more closely at it tonight (plus I’m conscious of the fact that I’m hanging all this out here on a thread in which only maybe one other person even uses SCVim). Just wanted to clear up any confusion.

I’d also hate for anyone reading this to get the impression that SCVim isn’t perfectly usable. In my experience it works fine, besides complaining about the open ended symbol.

I believe this message/error is related to a flaw in the lexer, which has historically been my area of the codebase: https://github.com/supercollider/supercollider/issues/3352

This thread has made me interested in fixing it soon!

2 Likes

EDIT: Minimal-er example: I will log this as a bug shortly.

TestStringParser {
	*initClass {
		"\"".postln;
		("\"".postln);
	}
}

hjh

PS: https://github.com/supercollider/supercollider/issues/4247

1 Like

there is a pr up now for the bug we’ve been discussing; it will probably be included in 3.10.2: https://github.com/supercollider/supercollider/pull/4255. sorry for continuing to be off-topic!

Not at all. Might be a minority position I suppose, but I was glad to have an occasion to have a slightly deeper look into the guts of SC than I’ve done previously. Appreciate your work on this as well.

1 Like

What command did you put for

let g:sclangTerm = "..."

in your vimrc to launch the terminal?

It’s not set in my .vimrc because I use tmux. If you look at the ftplugin, you’ll see that sclangTerm is only called if neither tmux nor screen is running. Sorry I can’t be more helpful here.

That’s interesting. Thanks. May I ask how you run the post window, then?

Through tmux. If scvim detects that it’s inside a tmux session, the post window is opened in a tmux split in the same terminal window, the size and location of which can be modified with g:scSplitSize and g:scSplitDirection.

I would assume that the default behavior when using Terminal.app without tmux would probably be to open a new terminal window for posting, but given that I already pretty much live in iTerm2/tmux, I wouldn’t know.

Oh, beautiful. I hadn’t tried with tmux. Works great. Just what I was looking for. Thanks for the tip!

1 Like

Of course! I absolutely love the SCVim/tmux combo; really glad to hear its working for you.