Making LanguageConfig adaptable to other IDE's (EMACS...)?

Hello,
I encountered an error when trying to install a Quark from EMACS ide.
LanguageConfig *store class method is a primitive, and is unable to write
the config file on Emacs - although it works from the native SuperCollider.ide on Mac.

I submitted the following issue / feature request.
Hopefully it is not a big issue to fix and can be done soon.
I would be very thankful.

Best,
Iannis Zannos

Motivation

Quarks.install works on SuperCollider.de, but does not work on Emacs
When performing

Quarks.install(“https://github.com/…”)

I get error:

ERROR: Could not write to file “/Applications/Emacs.app/Contents/MacOS”
RECEIVER:
class LanguageConfig (0x7fcf318e1b00) {

etc.

Currenly LanguageConfig.store is coded as a primitive:

LanguageConfig {
	*store {|file|
		_LanguageConfig_writeConfigFile
		^MethodError("Could not write to file %".format(file.asCompileString), this).throw
	}

Is it possible to make LanguageConfig open to specifying which path should be used?

Description of Proposed Feature

Allow users to specify the absolute or relative path for storing Language Config specs

Plan for Implementation

Add a class variable to LanguageConfig (named for example: configPath). Primitives that access the config file should consult the string stored in this variable. If configPath is nil, then use the currently existing code to deduce the path from the operating system. Else, use the path stored in configPath

Should be implemented by someone that has access to the LanguageConfig source code. It should take less than one hour to implemen in my estimate.

Hi iani, yes there is definitely something wrong here. But the issue might be hidden elsewhere, I can only point at some clues:

First of all, the path is not hardcoded, it is taken here:

… which eventually will call this:

You can test on emacs what this returns:

thisProcess.platform.userConfigDir

Hello Julian,

thanks for the tip. I will check!

Iannis

If configPath is pointing to a location internal to a different app’s bundle, that is a bug for sure. We should never do that.

hjh