# How do you specify student languages from VSCode/Vim/Emacs/etc?

**URL:** <https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324>\
**Category:** Questions & Answers\
**Tags:** emacs, vim, vscode\
**Created:** [September 19, 2023, 11:38am UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324 "2023-09-19T11:38:28Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [September 19, 2023, 11:38am UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/1 "2023-09-19T11:38:28Z")

</div>

Hi,

How do you specify student languages from VSCode/Vim/Emacs/etc?

Is `#lang htdp/bsl` correct for _beginners student language_?

What `#lang` preamble specifies the other teaching languages you would normally specify via the 'choose language' dialog in DrRacket?

Best regards  
Stephen  
:beetle:

---

<div class="post-metadata">

**Author:** ![greghendershott](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/greghendershott/32/98_2.png) [@greghendershott](https://racket.discourse.group/u/greghendershott)\
**Post date:** [September 19, 2023, 8:50pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/2 "2023-09-19T20:50:32Z")

</div>

In Racket Mode for Emacs the only way is `#lang`. `#lang htdp/bsl` works; I'm not sure about the others.

There have been a few bugs (now fixed) and one that was reported recently (not yet). I've grouped the issues with a [label](https://github.com/greghendershott/racket-mode/labels/htdp%2Fbsl).

The theme seems to be they may use somewhat different mechanisms/assumptions for things like images or test modules.

Also because I don't use the student languages they don't benefit from an eat-your-own-dog-food fast-path.

---

<div class="post-metadata">

**Author:** ![EmEf](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@EmEf](https://racket.discourse.group/u/EmEf)\
**Post date:** [September 19, 2023, 9:47pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/3 "2023-09-19T21:47:01Z")

</div>

`#lang htdp/bsl+`  
`#lang htdp/isl`  
`#lang htdp/is+l`  
`#lang htdp/asl`

The question is whether images, the test-result (failure), and signature report works well in plain Emacs.  
Please try and report back.

(The German ones have similar #lang-s associated with them.)

---

<div class="post-metadata">

**Author:** ![greghendershott](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/greghendershott/32/98_2.png) [@greghendershott](https://racket.discourse.group/u/greghendershott)\
**Post date:** [September 19, 2023, 11:12pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/4 "2023-09-19T23:12:06Z")

</div>

Although I won't have time to do that myself in the near future, I agree that looks like a good matrix of things for someone to try, and I'll look into any resulting bug reports.

---

<div class="post-metadata">

**Author:** ![bremner](https://avatars.discourse-cdn.com/v4/letter/b/aca169/32.png) [@bremner](https://racket.discourse.group/u/bremner)\
**Post date:** [September 20, 2023, 9:53am UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/5 "2023-09-20T09:53:44Z")

</div>

Greg Hendershott via Racket Discourse  
[notifications@racket.discoursemail.com](mailto:notifications@racket.discoursemail.com) writes:

> Although I won't have time to do that myself in the near future, I  
> agree that looks like a good matrix of things for someone to try, and  
> I'll look into any resulting bug reports.

I'm using teaching languages in emacs racket-mode this term and I would  
be happy to help fill in such a matrix incrementally. I could just keep  
track on my own wiki, or if there was a central place to make notes that  
would be fine also.

---

<div class="post-metadata">

**Author:** ![jryans](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jryans/32/31_2.png) [@jryans](https://racket.discourse.group/u/jryans)\
**Post date:** [September 20, 2023, 10:16am UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/6 "2023-09-20T10:16:59Z")

</div>

VS Code with Magic Racket should handle the static analysis portion of the student languages just fine. You specify the `#lang` to use them, just like any other language.

---

<div class="post-metadata">

**Author:** ![greghendershott](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/greghendershott/32/98_2.png) [@greghendershott](https://racket.discourse.group/u/greghendershott)\
**Post date:** [September 20, 2023, 12:55pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/7 "2023-09-20T12:55:58Z")

</div>

> [@bremner](#):
>
> I'm using teaching languages in emacs racket-mode this term and I would  
> be happy to help fill in such a matrix incrementally. I could just keep  
> track on my own wiki, or if there was a central place to make notes that  
> would be fine also.

@bremner Thank you! Whatever is most convenient for you, is fine for me. I don't want to bounce a task to you. I hope it's a small add-on to activity you'll do anyway, and, you get back fixes for things you want to work.

* * *

@EmEf I'm already spending so much time on Racket related work. Pushing to finally merge my long-running [`hash-lang` branch](https://github.com/greghendershott/racket-mode/tree/hash-lang). Interleaved with working on a [multi-file check-syntax db](https://github.com/greghendershott/pdb) (for use by Emacs, Dr Racket, and other tools, as discussed with @robby). Interleaved with reported bugs from people trying to get work done.

So although I respect the idea of proactively seeking problems in things that people might not even be trying to use, when you try to task me, I don't have a FIFO free. If/when @bremner discovers through the course of their work any new issues using various student langs, I will definitely look into those, then.

---

<div class="post-metadata">

**Author:** ![EmEf](https://avatars.discourse-cdn.com/v4/letter/e/53a042/32.png) [@EmEf](https://racket.discourse.group/u/EmEf)\
**Post date:** [September 20, 2023, 1:09pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/8 "2023-09-20T13:09:32Z")

</div>

@greghendershott You must have misunderstood my post. I didn't direct any requests at you. @bremmer uses Emacs mode instead of DrRacket for teaching so I think it is @bremner's obligation to explore and report -- just as you said.

---

<div class="post-metadata">

**Author:** ![greghendershott](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/greghendershott/32/98_2.png) [@greghendershott](https://racket.discourse.group/u/greghendershott)\
**Post date:** [September 20, 2023, 4:01pm UTC](https://racket.discourse.group/t/how-do-you-specify-student-languages-from-vscode-vim-emacs-etc/2324/9 "2023-09-20T16:01:57Z")

</div>

Now I'm guessing you use the email interface to Discourse?

And, you had CC-d @bremner -- or even TO-d them and CC-d Discourse?

Those would be super clear signals... that Discourse doesn't show in the web UX.

TL;DR: No worries.
