sassoftware / vscode-sas-extension

This SAS Extension for Visual Studio Code provides support for the SAS language, including features such as SAS syntax highlighting, code completion, hover help, code folding, outline, SAS code snippets and run SAS code.
https://sassoftware.github.io/vscode-sas-extension/
Apache License 2.0
121 stars 49 forks source link

Local/Remote IOM connection - allow specifying a SAS Config file or a Session Encoding #523

Open jbodart-argenx opened 1 year ago

jbodart-argenx commented 1 year ago

Is your feature request related to a problem? Please describe. By default it seems Local SAS 9.4 on Windows uses wlatin1 encoding, but I have a need for UTF-8 encoding for my SAS session.

Describe the solution you'd like I'd like to be able to specify a SAS config file of my choice, to be applied to a given profile.

Describe alternatives you've considered Alternatively I could do with just specifying the session encoding as a single setting

Additional context N/A

Environment PC SAS version 9.4 on windows desktop

scnwwu commented 1 year ago

You can edit your local sasv9.cfg file to specify encoding. Doesn't it meet your need?

jbodart-argenx commented 1 year ago

yes but I regularly have to switch between config files and it's not practical to rewrite the file every time. So being able to switch config when switching profile would be great.

snlwih commented 1 year ago

@jbodart-argenx, could you have a look at #86 (Provide the ability to add custom pre/post code)? Would that meet your need?

As you mention system settings, like encoding, I guess those cannot be accomplished from SAS language code that runs inside the SAS session itself. So this would really require a capability to specify SAS startup settings, which would then need to be tied to the connection itself.

Also work is in progress, see Milestone 17 to provide support for connections to remote SAS 9 servers using IOM Bridge. In that sceanrio the user might not even have access to config files for the SAS server. So an additional use case where this feature would be beneficial. And when wanting to run the same SAS code against a SAS 9 server and then against a SAS Viya 4 Compute Server (by default running UTF-8), eg. as part of a migration effort, for srue you would want to be able to have the SAS 9 server run in UTF-8 mode as well.

Not sure if this can all be easily accomplished using IOM and IOM Bridge connections, but putting this in the candidate list so at least research can be started for this.

Once we have good descriptions of use case and benefits then we might want to change the title of this issue into something like "Add support for specifying SAS startup options as part of a connection profile definition"

jbodart-argenx commented 1 year ago

Well #86 (Provide the ability to add custom pre/post code) can be useful, but does not match the specific use case where options such as session encoding need indeed to be specified at system startup and cannot be changed afterwards. So this request is of interest when submitting code to a local (PC) SAS 9.4 session, where the local user can control SAS startup configuration. When code is submitted to a server instead, I'm generally not expecting the user to be able to specify particular system startup options. This is why, in case you develop code locally before submitting it to a server, you want to be able to best match the server settings on your local session, to make both environments as much comparable as possible.

snlwih commented 11 months ago

This feature request is related to #656 which talks about autoexec. As can be seen from my comments in that entry, the sasOptions tag in a connection definition in settings.json, allowed me to run a SAS Viya 4 Compute Server with a specific encoding. So hopefully this tag (and the autoExec tag) can also be supported for local/remote IOM connections (SAS 9 servers).

jbodart-argenx commented 11 months ago

Yes that sounds good to me :-)

snlwih commented 3 weeks ago

The topic of this feature request has been brought up in this GitHub Discussion.