Re: [racket-dev] How to contribute to Dr. Racket IDE?

Stephen De Gabrielle <[email protected]> Thu, 7 May 2020 18:28:39 +0100
Newsgroups gmane.comp.lang.racket.user,gmane.lisp.scheme.plt
Message-ID <CAGHj7-L2_qRt5sNMKVwxTsTs7Uw2qUKEr571MTYFngoeLyX0Gw@mail.gmail.com>
Hi Michael,

Welcome!

Racketeers use a lot of different editors and IDE's - I did an ad-hoc
survey a while back and I was surprised by the variety - and how many
people use a combination of editors and IDE's.

There are a lot of options - use what works for you.

DrRacket supports Emacs keybindings
<https://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html#%28idx._%28gentag._165._%28lib._scribblings%2Fdrracket%2Fdrracket..scrbl%29%29%29>
:

If you are most familiar with Emacs-style key bindings (especially on
> windows or some linux installations where the control key is, by default,
> for the menu shortcuts), you should uncheck the Enable keybindings in
> menus preference.

-
https://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html#%28idx._%28gentag._165._%28lib._scribblings%2Fdrracket%2Fdrracket..scrbl%29%29%29

The drracket-vim-tool is a DrRacket plugin that simulates vim keybindings
https://pkgs.racket-lang.org/package/drracket-vim-tool

Racket Mode (very popular!) provides GNU Emacs major modes for Racket: Edit
and REPL. https://www.racket-mode.com

You can also use VIM https://docs.racket-lang.org/guide/Vim.html
and other editors: https://docs.racket-lang.org/guide/other-editors.html

There is a racket-langserver!
https://github.com/jeapostrophe/racket-langserver  - the author of Magic
Racket VS Code plugin recently released an update announcing this:
https://www.reddit.com/r/Racket/comments/gczcn8/vs_code_racket_extension_gains_lsp_support/

Kind regards,

Stephen


On Thu, May 7, 2020 at 4:48 PM Michael Robin <me-/[email protected]> wrote:

>
>
> Although I’ve had some experience with using (and implementing various
> “naïve”) versions of Lisp, I’m also a Racket newbie.
>
> Although there are good reasons to have a stand-alone IDE like DrRacket,
> esp. as a standard batteries-included environment for teaching, having an
> IDE do what everyone wants is of course a challenge, so in non-educational
> environments such stand-alone IDEs are somewhat of an anachronism. For
> instance, personally I find it almost impossible to work in a modeless
> editor, so without Vi or Emacs bindings (I prefer the former, despite the
> latter’s lineage), but I don’t expect DrRacket to provide these bindings,
> but just expect to do what it does well.
>
>
>
> So I think the best way is probably to use something like VsCode (which
> you mention) with one or more plug-ins to edit code, do repl work, and to
> debug if it is supported.  I don’t think any of the plug-ins shown below
> support debugging (no Racket LSP protocol?) but otherwise may do what you
> want. I think working on these plug-in’s probably makes for sense then
> burdening DrRacket with more functionality. So your workflow could be to do
> major editing and some experimenting in VsCode, and have DrRacket
> auto-reload externally changed files, and use DrRacket for serious
> debugging; VsCode can also reload files changed in DrRacket – though I’d
> make sure files are checked into git in case something gets saved that you
> want to back out of.   I do something similar with SWI Prolog, which has a
> similar stand-alone IDE, where I edit from VsCode and debug in the SWI
> IDE.
>
>
>
> Some relevant VsCode extensions shown below -- you’ll have to experiment
> to see which play along well with others if you need more than one. Having
> a “blessed” extension that could be improved on (is there one??) and an LSP
> protocol would be nice.
>
>
>
>
>
>
>
> Thanks,
>
> Michael
>
>
>
> *From:* racket-dev-/[email protected] <racket-dev-/[email protected]> *On
> Behalf Of *Matthias Felleisen
> *Sent:* Thursday, May 7, 2020 6:43 AM
> *To:* Robby Findler <robby-Tm56wbeMse4mSb9I+tWM/[email protected]>
> *Cc:* Conor Hoekstra <[email protected]>; Racket Developers <
> racket-dev-/[email protected]>
> *Subject:* Re: [racket-dev] How to contribute to Dr. Racket IDE?
>
>
>
>
>
>
>
> Conor,
>
>
>
> see https://groups.google.com/forum/#!topic/racket-users/lXrgeBwJAJ4 for
> a recent discussion on how to work on drracket.
>
>
>
> — Matthias
>
>
>
>
>
>
>
> On May 7, 2020, at 9:33 AM, Robby Findler <robby-Tm56wbeMse4mSb9I+tWM/[email protected]>
> wrote:
>
>
>
> Hi Conor: thanks for your interest in DrRacket. To build it, run "make" in
> the top-level of a checkout of the main racket repository. As for the rest,
> I think that there are things related to some of what you want, but
> probably not exactly what you have asked for.
>
>
>
> Robby
>
>
>
>
>
> On Wed, May 6, 2020 at 11:12 PM Conor Hoekstra <[email protected]>
> wrote:
>
> Hello,
>
>
>
> I am a new racketeer. I have written a couple toy algorithms
> <https://twitter.com/code_report/status/1244723909355884544?s=20> in
> Racket in the past couple months and started to write my first library in
> Racket today. This was caused bu starting to read SICP. I then went and
> watched 5 RacketCon talks by Matthew Butterick, Matthew Flatt, Matthias
> Felleisen and Alexis King. To say the least, as a programming language
> enthusiast, I am very excited about Racket as a PL for creating PLs.
>
>
>
> However, I have been rather disappointed with Dr. Racket. For an IDE
> designed for students and aimed at teaching - there seem to be a couple
> major low hanging fruits that have been missed.
>
>
>
> *MISSING FEATURES*
>
> 1. No automatic formatter (or pretty-printer) [ and yes I understand the
> auto-indent feature is there, but there should be something like gofmt for
> Go or clang-format for C++ ]
>
> 2. No option to syntax color different symbols
>
>    - This one is really surprising. If you look at VS Code screenshot
>    below, you can see that the function name and the parameters are different
>    colors. A bit odd that *take *and *drop* aren't blue but still, this
>    is a major missing feature IMO.
>
> <vscode_racket.png>
>
> 3. No parentheses color matching
>
>    - Once again, very surprising this isn't an option. I realize there is
>    a "scope highlighter" feature, but that requires skipping around with your
>    cursor.
>
> Anyways, I am not one to complain without proposing solutions or trying to
> fix things. Due to how excited I am about Racket, I figured I would just go
> build the IDE and open a couple PRs to add these features. I hopped over
> to: https://github.com/racket/drracket and that led to a couple of other
> missing things.
>
>
>
> *MISSING ON GITHUB DR. RACKET REPO:*
>
>
>
> 1. No CONTRIBUTING.md: from what I can tell - no instructions on how to
> build?
>
> 2. No CODE_OF_CONDUCT.md: this one isn't really necessary for me to pitch
> in - but COCs are the new norm and there are individuals that won't
> consider contributing if there isn't a COC.
>
>
>
> Anyway, if someone in the dev group can provide me with:
>
>
>
> 1. Instructions on how to build (I do most of my development on Ubuntu
> 18.04 but have dual boot into Windows 10 if necessary)
>
> 2. Point me towards solutions to the 3 missing features (as I am new to
> Dr. Racket - I realize these things might exist and I just might not have
> found my way to them) OR confirm that they don't exist
>
>
>
> Thank you for your help in advance! Looking forward to helping out and
> contributing to the Dr. Racket ecosystem.
>
>
>
> Conor
>
> https://www.linkedin.com/in/conorhoekstra/
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/3d476aec-e744-4ccd-9747-93c3905c984b%40googlegroups.com
> <https://groups.google.com/d/msgid/racket-dev/3d476aec-e744-4ccd-9747-93c3905c984b%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/CAL3TdOMgOYhNUUug3Rje0Zjhi_2UQ0OXDCzD7iCA3%2BcC3fbsUA%40mail.gmail.com
> <https://groups.google.com/d/msgid/racket-dev/CAL3TdOMgOYhNUUug3Rje0Zjhi_2UQ0OXDCzD7iCA3%2BcC3fbsUA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/1B5E721B-263D-465C-A78D-6597B055D0C6%40felleisen.org
> <https://groups.google.com/d/msgid/racket-dev/1B5E721B-263D-465C-A78D-6597B055D0C6%40felleisen.org?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/e92e7c6894b682025c0150dd6b15dafe%40mail.gmail.com
> <https://groups.google.com/d/msgid/racket-dev/e92e7c6894b682025c0150dd6b15dafe%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CAGHj7-L2_qRt5sNMKVwxTsTs7Uw2qUKEr571MTYFngoeLyX0Gw%40mail.gmail.com.
image003.jpg (image/jpeg, 105.1 KB) - not displayed