racket / drracket

DrRacket, IDE for Racket
http://www.racket-lang.org/
Other
444 stars 93 forks source link

DrRacket definitions window is a blank white box #575

Closed jasonhemann closed 1 year ago

jasonhemann commented 1 year ago

I notice this on my MacOS 10.15.7 machine, under both 8.5 and 8.6 releases at least. It persists after reinstallation. I have not tried to reproduce on a different machine; in any case it will be good to know what about my local installation triggers this behavior.

My definitions window is featureless white box. I can apparently type into it; it's registering keyboard events, but isn't displaying them back to me. I checked and I don't have any user scripts running. This behavior persists across sessions and across different languages. Whatever is causing this issue is also disrupting the ability to change color schemes; you'll see from the below video that although I was able to change the color scheme, this change does not affect the actual frame purporting to display my definitions.

What can be causing this? Any ideas how I can diagnose this further?

https://user-images.githubusercontent.com/1329370/184947179-7fa6a03b-7186-440c-af4f-f05c806fb576.mov

jasonhemann commented 1 year ago

@spdegabrielle

jasonhemann commented 1 year ago

My screen is the standard Built-in display 16-inch (3072 x 1920) Intel UHD Graphics 630 1536 MB graphics, on a 10.15.7 (19H1713) release of MacOS, fwiw.

jasonhemann commented 1 year ago

List of packages currently installed:

Installation-wide:
 Package            Checksum             Source
 main-distribution  9481f7ced1cb2dea...  catalog...tribution
 racket-lib         9019e19592f3c3fd...  catalog racket-lib
 [205 auto-installed packages not shown]
User-specific for installation "8.6":
 Package               Checksum            Source
 20SwDev                                   link...nts/20SwDev
 brush                 91b83cda313f77f...  catalog...rush.git
 cover                 ad50ffa8f624605...  catalog...#release
 custom-load           4e70205c29ab067...  catalog...tom-load
 ee-lib                95055db02b66372...  catalog...-lib.git
 faster-minikanren     910fbea468d57c8...  catalog...niKanren
 feature-profile       cc96e3aa8efe71c...  catalog...e#master
 Fish                                      link...uments/Fish
 generator-util        2de885130984bd6...  catalog...util.git
 generic-bind          d8bd9b76b792c6e...  catalog...d/master
 gtp-util              d20f0487699a471...  catalog...util.git
 lathe-comforts-lib    43829a1613140d6...  catalog...lib#main
 minikanren-ee                             link...nikanren-ee
 mischief              c6f95a774b60950...  catalog...f/stable
 mutt                  8f85ee8f1d4c4c1...  catalog...mutt.git
 rackunit-abbrevs      83091b86a37cb84...  catalog...-abbrevs
 raco-find-collection  00f0d3dbad025fd...  catalog...llection
 rebellion             0c135eea96cf92c...  catalog...lion.git
 sugar                 c90834b77afad07...  catalog...ugar.git
 test-fest                                 link...7/test-fest
 threading             199c8e240146baf...  catalog...hreading
 todo-list                                 link...t-todo-list
 unstable-lib          99149bf1a6a82b2...  catalog...able-lib
jasonhemann commented 1 year ago

I deleted my preferences file, to see if it was the preferences option that was causing issues. With no preferences file, I can write in the definitions window, but I now see the following error message. I'm unclear if completely removing the preferences file was a good idea, however

backward-match: called on a color:text<%> whose colorer is stopped.
  context...:
   /Applications/Racket v8.6/share/pkgs/gui-lib/framework/private/color.rkt:962:4: backward-match method in text-mixin
   /Applications/Racket v8.6/share/pkgs/syntax-color-lib/syntax-color/racket-navigation.rkt:56:0: racket-backward-sexp
   /Applications/Racket v8.6/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /Users/jhemann/Library/Racket/8.6/pkgs/drcomplete-filename/tool.rkt:18:8: check-path method in fc-mixin
   /Users/jhemann/Library/Racket/8.6/pkgs/drcomplete-filename/tool.rkt:34:8: get-word-at method in fc-mixin
   /Users/jhemann/Library/Racket/8.6/pkgs/drcomplete-auto/tool.rkt:76:22
   /Users/jhemann/Library/Racket/8.6/pkgs/drcomplete-auto/tool.rkt:33:16
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/timer.rkt:34:38
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:435:6
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:486:32
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:634:3

image

shhyou commented 1 year ago

Looks like the plugins installed by drcomplete are failing. Could you remove them or try starting with a clean Racket installation?

jasonhemann commented 1 year ago

You know, I'm not sure that I can!

raco pkg remove drcomplete
raco pkg empty-trash
rm ~/Library/Preferences/org.racket-lang.prefs.rktd
brew uninstall --force --cask racket
brew install --cask racket

and after opening DrRacket I encounter this same issue again. However, raco believes that package is now uninstalled:

$ raco pkg remove drcomplete
raco pkg remove: package not currently installed
  package: drcomplete
  current scope: user

What do I need to do to truly exorcise this package?

sorawee commented 1 year ago

What about drcomplete-auto? (and perhaps drcomplete-filename too?)

shhyou commented 1 year ago

Looks like drcomplete pulls a bunch of plugins (https://pkgs.racket-lang.org/package/drcomplete). To fully remove all of them, try:

raco pkg install drcomplete
raco pkg remove --auto drcomplete

and see if all its dependencies are gone.

Or perhaps just

raco pkg remove --auto drcomplete-filename drcomplete-required drcomplete-user-defined drcomplete-module drcomplete-auto
jasonhemann commented 1 year ago

Ah. That was something I needed to know. Very helpful, thank you @shhyou and @sorawee . After removing all of those I no longer encountered the DrRacket internal error, but I was still experiencing the big-empty-white-box editor window phenomenon.

On a hunch, and also because I'd been experiencing a seemingly-related problem, I tried completely removing todo-list. That seems to have been the locus of the problem: after that I was able to interact again.

I was then able to reinstall both todo-list and drcomplete without issue. Curious. But resolved here.

Anyone else facing this issue in the future should try completely removing their racket packages in order of suspiciousness, restarting drracket in between each.

rfindler commented 1 year ago

@jasonhemann you may want to open an issue with one of those plugins?

Also, it is possible to disable the plugins within DrRacket, via the Preferences dialog, Tools pane.