Commit Graph

31 Commits

Author SHA1 Message Date
Simon Forman 40a7830694 Fixes #40353 TypeError: must be str or None, not bytes 2020-04-24 11:45:16 -07:00
Simon Forman 4ec06bcaa3 Fixes #40352 write() argument must be str, not bytes 2020-04-24 11:24:56 -07:00
Simon Forman d991fad3c3 Make sure joy.gui.main.__doc__ is at the top of the module. 2020-04-24 10:47:23 -07:00
Simon Forman 25525deb53 Open stack pickle file in binary mode. 2020-04-24 10:10:30 -07:00
Simon Forman f949efe1a4 futurize stage2 gui 2020-04-23 23:38:10 -07:00
Simon Forman 89b4eb5e15 futurize stage1 gui 2020-04-23 23:19:29 -07:00
Simon Forman a3f863ff18 Move is_numerical() to joy.gui.utils. 2019-08-03 19:02:24 -07:00
Simon Forman 6a94c12b9b Get the path separator right on windows.
It used to use: C:\Users\sforman/.joypy

which worked, but ew.
2019-08-02 18:30:43 -07:00
Simon Forman f2425ae1ae Minor UI bugs.
I should nail this down better.  Command selections like ' []' were
failing to evaluate.
2018-07-22 11:53:02 -07:00
Simon Forman 79a653c08b Oh python, oh unicode. 2018-07-22 11:51:47 -07:00
Simon Forman 4ed8422258 Load JOY_HOME/definitions.txt
You still can't edit other text files from within the UI, but at least
now you have a place to persist your own definitions over restarts.

I thought about having a [definitions] section in the config INI file,
but for some reason I prefer a separate definitions.txt file.  I dunno.
Might change it in future.
2018-07-22 11:50:34 -07:00
Simon Forman 17b9fba65e TEXT_BINDINGS stay in textwidget.py. 2018-07-22 10:14:45 -07:00
Simon Forman f96362a904 Rework the default JOY_HOME contents. 2018-07-21 20:19:38 -07:00
Simon Forman 33a952ff71 Config file and CLI arg parser. 2018-07-21 17:56:53 -07:00
Simon Forman 49941f9a33 Log types at startup. 2018-07-18 17:06:51 -07:00
Simon Forman 1e8c196c5b Add some logging. 2018-07-18 16:14:32 -07:00
Simon Forman 3c27fab071 Cache the results of type checking. 2018-07-18 16:13:57 -07:00
Simon Forman 7607ca7650 Definitions infer stack effects.
At start-up defs that DON'T type check are permitted (so you can use e.g.
loop, map, etc.) in the definitions "source", but then the user-facing
inscribe command only allows you to define new commands that DO
type-check.  The ideal solution here is to get inference working for the
loopy words.  (In the meantime you can select and execute their
definition text directly.  That's not (yet!) type-checked.)
2018-07-17 20:52:57 -07:00
Simon Forman 043acd685c More stack effects, and modify the key bindings. 2018-07-16 18:43:40 -07:00
Simon Forman e169c6aae2 Some integration with Type Checking.
Now the UI highlights commands and numbers as you move the mouse, numbers
are blue, commands that type-check are green, commands that fail to
type-check are orange and will not be interpreted, and if there is no
stack effect information available for a command it is grey but you can
still attempt to execute it.

You can still evaluate whole expressions by selceting them and
right-inter-clicking before you release the left button, or by putting
the cursor on a line and typing ctrl-enter, which will run the whole
line.  These expressions are NOT (yet) type-checked.
2018-07-15 11:48:08 -07:00
Simon Forman 0292e8a297 Much globals. Wow. 2018-07-14 20:58:43 -07:00
Simon Forman 7899d68bab Minor cleanup. 2018-07-14 20:55:34 -07:00
Simon Forman ebb731126d Move load_stack() to StackDisplayWorld. 2018-07-14 20:47:04 -07:00
Simon Forman da03f60dca Move StackDisplayWorld into world.py 2018-07-14 19:51:31 -07:00
Simon Forman ea11fbebda Move reset() to text method.
Rearrange some other stuff.
2018-07-14 19:34:01 -07:00
Simon Forman 8bbf4fc2bf Correct some typo
I accidentally pasted or something.
2018-07-14 19:14:01 -07:00
Simon Forman 6fe83256b1 Move init_text() to Text method. 2018-07-14 19:11:49 -07:00
Simon Forman a84966cf9b Split some code into a utils.py module. 2018-07-14 18:51:22 -07:00
Simon Forman 4fb9e1e003 Minor cleanup.
Improve the behavior of the World.
2018-07-14 18:41:36 -07:00
Simon Forman 9ea0157969 Partial harmonize key commands.
Fix bug cut instead of copy.
2018-07-14 18:25:12 -07:00
Simon Forman 862e0b07a8 It's time to bring in the GUI.
Minimalist (not to say Brutalist) UI based on text windows and mouse
chords.  Experimental.
2018-07-14 12:45:52 -07:00