top | item 29946859

Show HN: Spade, A simple programming language with a TUI IDE

70 points| sras-me | 4 years ago |hackage.haskell.org

20 comments

order
[+] badsectoracula|4 years ago|reply
Looks neat, kinda reminds me of a cross between QBASIC and Turbo BASIC.

I tried it a bit but found a few issues:

1. The about box doesn't seem to use the current term size - it appears out of bounds in 80x24 (which is my default term size).

2. In help, the down arrow key with the cursor on first green letter moves the cursor right. If the cursor is in some other place it hides the cursor.

3. There should be some mouse support, especially in help as it is much easier to point and click on links than navigate the cursor.

4. On the topic on navigation, page up/down should work in help as it makes easier to skim it and skip sections (also IMO sections should be in individual pages instead of having everything mashed together). Tab should also jump the cursor to the next link.

5. Trying to copy and paste an example from help (the first example in graphics, the one with the "graphicswindow(500, 500)", "wait(5)", etc) crashed the program with some out of bounds error. This happened twice but for some reason it didn't happen a third time - not sure what i did different.

6. (after it worked) the example runs but if it exits and i try to run it a second time the IDE disappears (the term goes black with the cursor at the top left) and it hangs - i had to kill it with killall spade)

7. Pasting works from the X clipboard but trying to copy something (doesn't matter if i use Edit->Copy or just select it) doesn't work.

8. Code completion window appears even with single value even after the complete value is written (e.g. if i type break i still get the code completion with a single break value that remains there until i press enter). This isn't really helpful and is annoying. Also it should be possible to "complete" with tab instead of just enter as tab completion is very common.

9. The tab key doesn't seem to work in general.

10. The delete key doesn't seem to work on selected text.

11. Selection seems to work weirdly if i select backwards with Shift+Left arrow - the selection is always in the letters at the left and side of the cursor and the entire line from the end of the selection to the end of the line becomes gray (however Shift+Home works as expected).

12. Not a bug, but IMO errors should move the cursor to the error line and be a little more human friendly than "Expecting some of FunctionStatement but got Token {tkRaw = TkKeyword KwEndIf, TkLocation = Location {lcLine = 6, lcColumn = 3, lcOffset = 237}, tkOffsetEnd" :-P

[+] sras-me|4 years ago|reply
Very nice of you to give it a try, and sorry for all the issues. Some of these are known, but most of them are not. So thanks for all the details!
[+] JadeNB|4 years ago|reply
> Looks neat, kinda reminds me of a cross between QBASIC and Turbo BASIC.

I was going just to look at the comments and probably neglect to click through to the actual language, but it's hard for me to imagine a recommendation that would tweak my nostalgia better than this. (Anyone remember the heady days of entering games like SNAKE.BAS into QBasic by manually transcribing a magazine print-out?) Thanks!

[+] mysterydip|4 years ago|reply
Reminiscent of QBasic for me. Well done! Looking forward to more development.
[+] skywal_l|4 years ago|reply
Great! Would be nice to have a Turbo Pascal skin.
[+] codeivore|4 years ago|reply
the searchable help feature is awesome