Contributing to DrRacket

121 views
Skip to first unread message

Stephen De Gabrielle

unread,
Nov 24, 2017, 10:35:52 AM11/24/17
to d...@racket-lang.org

Hi,

 

I’m thinking about spending some of my spare time on DrRacket and the GUI libraries and would appreciate your feedback about where you think I should put my efforts, both in the ideas below (that I have cribbed from other IDE’s) and any suggestions you have.

 

I don’t want to go down any paths that might be undesirable in general, but also specifically in the role as a IDE for teaching/learning.  I believe the concept of ‘projects’ (like in xcode) is undesirable in this context, but please correct me if I am wrong about this.


Please don't take this as a criticism of DrRacket - it is amazing. I just like it so much I want to contribute in some way.

 

Please forgive me for intruding on this list if it is the wrong venue for this question.

 

Kind regards

Stephen

 

 

OK here are the ideas (I know some are probably unrealistic)

       to put a few more screenshots in the DrRacket Guide,

       Make some DrRacket gif’s and videos for the guide and youtube etc. (short ones – and write a program in #lang video to make automate processing) (Screen recording with quicktime on macos is easy - but I'm not sure how to do this on windows? Twitch?)

       Make the error messages pane optional, but on by default, and optionally show ‘live’ status information when there are no error messages (appropriate to the current selected language BSL, typed racket, scribble, slideshow, datalog?)

       hide the ‘check syntax’ button if background expansion is *enabled*

       use the big space between ‘language selection’ and cursor position – perhaps git info/status?

       (optional) activity logging and eye tracking with automated submission

       ‘buffer’ arrangement like emacs (but with sensible defaults) to better support different screen geometries so as to penalise neither professionals with multiple large screens or students/others who can only afford a second hand 7inch netbook.

       to create an address bar for the currently selected directory>file (and possibly ‘component’:  as function or class>method)

o   like the ‘file’ button in that clicking gives a list of items to select keeping the whole path to the currently selected file/component visible in the DrRacket toolbar.
(keeping the ‘file’ button for when the buttons panel is on the side)

o   Should clicking a part of the path show siblings or children(like in ‘intellij-idea’ below) ?

o   Should clicking a file show (require ...)’d components?

o   Should clicking the currently selected component show dependencies?

o   What should right-clicking do?

(simple mockup of address bar)

 

       add a ‘side bar’ panel (like VScode) with a hlist/outliner type control to show defined identifiers like the (define…) button. 

o   (define…) doesn’t work well with large files like drracket/private/unit.rkt at 5500 lines

 

Some tab things;

o   add tab reorganisation functions (drag to re-order, drag out to a new window, drag in from another window)

o   add tab affordances: tab icon on left(filetype?), tiny x on right (to close tab)(,

o   add ‘new-tab’ control

o   add context menu to tabs for the above

o   Only show ‘check syntax’ button if background expansion is disabled

 

(the goal is to use typed racket for the above where possible)

 

Screenshots from other systems

 

address bar from https://www.jetbrains.com/help/idea/discover-intellij-idea.html#UserInterface

/help/img/idea/2017.2/refcard_2.png

 

TAB AFFORDANCES

 

New Tab ‘button’

 

error messages pane

 

Status pane intellijidea

 



Matthias Felleisen

unread,
Nov 24, 2017, 4:30:32 PM11/24/17
to Stephen De Gabrielle, d...@racket-lang.org
On Nov 24, 2017, at 9:35 AM, Stephen De Gabrielle <spdega...@gmail.com> wrote:

I’m thinking about spending some of my spare time on DrRacket and the GUI libraries and would appreciate your feedback about where you think I should put my efforts, both in the ideas below (that I have cribbed from other IDE’s) and any suggestions you have.


Let me start with a big “thank you.”  Many of these things are needed and will greatly improve DrR’s usability. When I run my Sw Dev course at Northeastern, I allow students to use whatever language/IDE they want. I often see ideas in new IDEs that we have/thought of a long time ago and think “cool perhaps they imitated us and Robby should feel immensely flattered.”  And then I see cool ideas in these new IDEs and I am jealous. I don’t want to be jealous, I just want these features :-) 

 I don’t want to go down any paths that might be undesirable in general, but also specifically in the role as a IDE for teaching/learning. 


Totally understood. 

I believe the concept of ‘projects’ (like in xcode) is undesirable in this context, but please correct me if I am wrong about this.




Correct. If you ever feel the need for a project, we need to improve the language. 

I’ve read your list and I like all of the ideas. So w/o sounding like someone who will steal all your time, can I have all of it :-) 

— Matthias




Stephen De Gabrielle

unread,
Nov 26, 2017, 8:20:00 AM11/26/17
to Matthias Felleisen, d...@racket-lang.org
Thanks Matthias.

Your enthusiasm and guidance is appreciated - I do what I can. 

I'm prioritising; 
 a) adding some more recent pictures to DrR documentation (adding images from racket 6.11) 
a) starting on an address/context bar - https://github.com/racket/drracket/issues/171

Also - thank you to Robby who has already provided much guidance and support.

Stephen
--
Kind regards,
Stephen
--
Ealing (London), UK

Matthias Felleisen

unread,
Nov 26, 2017, 4:32:17 PM11/26/17
to Stephen De Gabrielle, d...@racket-lang.org

If you want 3 tasks instead of 2 (everyone likes 3 over 2, no :-), I’d say generalize this 
 
       hide the ‘check syntax’ button if background expansion is *enabled*

to ‘hide all buttons when '#lang * racket/*’ is chosen and add a preference that allows people to generalize the regexp to their desire. 

Rationale: This makes additional screenstate available to programs. Alternatively, this new space could be used for other messages 

Stephen De Gabrielle

unread,
Nov 26, 2017, 7:25:34 PM11/26/17
to Matthias Felleisen, d...@racket-lang.org
>‘hide all buttons when '#lang * racket/*’ is chosen and add a preference that allows people to generalise 
>the regexp to their desire. 

An exciting idea. Might be achievable by 
1. adding new configuration option 'hide toolbar regex'
2. adding the regex check post file load, and setting 'toolbar hidden' if it matches.
(possibly not a huge job)

I couldn't resist a look at the other offerings.I think there are two variants: 
a) IDE window normal with only the editor (maximising screen state for definitions or other purposes)
b) IDE full screen with only the editor  (removing distractions)

The 'distraction free/zen mode' is is often accompanied by a 'command palette' (cmd-shift-p) where you 
can search and select actions, open files etc., and hides itself when finished. (I've put some screenshots below)

I'll admit that I wish the interactions window was a popup, instead of stealing a massive chunk of my screen estate 
each time I hit [cmd]-[r] I got this


instead of this
(I don't know how this could be achieved - tips appreciated)


Kind regards, 

Stephen


----

Mac shell commands


Sublime text 2 

Image result for command palette sublime 2




Laurent

unread,
Nov 27, 2017, 8:38:30 AM11/27/17
to Stephen De Gabrielle, Matthias Felleisen, d...@racket-lang.org
Regarding the popup, I personally prefer to remain in a separate window to keep the error message in sight while updating the code.
(I also always place the interaction window in vertical mode so that it sits on the right side of the window since this is usually where there's empty space for me.)

On Mon, Nov 27, 2017 at 12:25 AM, Stephen De Gabrielle <spdega...@gmail.com> wrote:
[...]
I'll admit that I wish the interactions window was a popup, instead of stealing a massive chunk of my screen estate 
each time I hit [cmd]-[r] I got this  [...]

Matthias Felleisen

unread,
Nov 27, 2017, 11:47:28 AM11/27/17
to Laurent, Stephen De Gabrielle, d...@racket-lang.org
> each time I hit [cmd]-[r] I got this […]


The unit testing framework for the teaching languages optionally opens up as a separate window (with buttons for (un)attaching it). That might be the proper solution for the interactions window.
Reply all
Reply to author
Forward
0 new messages