Skip to content

Latest commit

 

History

History
334 lines (304 loc) · 11.9 KB

livecoding.org

File metadata and controls

334 lines (304 loc) · 11.9 KB

connecting of block words into phrases

howto select/execute a paragraph block

inline typing of block words

flesh out generic word-and-body-and-END block for things like “define”, where END is implicit

pin and/or lock first row of widgets, can be collapsed like tree

draw paragraph as a scheme-bricks-style bracket

shades of gray for nesting, not color

x to execute selected word/block

right-click or control-click to execute block without selecting

sidebar pops up when you go near right edge, or use mouse wheel

delete or C-d deletes selected block

c puts copy of selected block at mouse pointer

undo and redo

control-r to rotate orientation of selected block

merge sentences/bodies when dropping sentence

equivalent of scheme’s “every-frame”

graceful error handling with pop up notifications

control or right-click on background to create a word cursor.

remove it if nothing typed.

left-drag to move blocks

click to select block

right click to edit block text (where applicable)

selected block highlights in sine oscillating white/gray or color

prompt goes back to executing words and showing one stack output.

change minibuffer into right side scrollable word/phrase palette

alphabetical order dictionary

mousewheel capable!

improved block appearance with schemebricks-style typing

*

make music with blockyforth … ambient at first.

able to click/grab/edit/copy blockified forth commands

[#B] show stack in sidebar

consistent set of function keys for executing global words

try true fullscreen

flash cursor colors for active drop

<dto> and the sidebar could be dynamically changed according to context. such as if you ask for the list of available buffers, a series of sentences could pop up in the right side ah i like the idea of Minimizing word defs that you’re not editing. http://www.pawfal.org/dave/index.cgi?Projects/BetablockerDS http://www.pawfal.org/dave/blog/2012/10/scheme-bricks-2/

http://www.ifwiki.org/index.php/Inform_7_for_Programmers

??? cancel the general buffer editor thing. do it later.

[#B] INTERACTIVE LIVECODING.

how to do ANYTHING in the minibuffer

think about the bottom-up workflow. review the language design.

implement SEE to show a definition’s body

implement AS to change

[#B] add context sensitive help: describe <WORD>

sine/cosine

[#B] word menu, traditional application menu bar

a robot having (bullets hp) is a block

to initialize a robot do 0 :hp ! 10 :bullets ! “robot.png” display end

to fire a robot do bullet new drop end

local :bob robot new :bob ! :bob with 20 20 move fire

——————————————————-

click the real BOB to insert var reference!

[#A] create PROGRAM when you click on the background, delete it if nothing was typed

[#A] do this at 0,0 when creating a new buffer

[#A] AlWAYS-RUN flag makes block immune to PAUSE state, default is NIL but is T for UI stuff

[#B] keep minibuffer.

[#A] PROGRAM is a widget that can be arranged in the buffer with test objects

Program widget instantiates as a blinking cursor

EXECUTE BUFFERs! to re-do all defs

show stack and MESSAGE output on screen

show top items of STACK in modeline/panel

[#C] rename add-object/remove-object to insert/delete… a notion of Point

[#C] words for accessing incoming arguments? not really needed. just list !y !x at the beginning to pop values

define the block shell as an embeddable richtext block you can type in, emacs-style

arrows only nav within object—use control-arrow

??delete only deletes within an object—use control-delete to “break” the text of the previous block?xs?

black text w/o borders

anything-el-style completion

show the stack, why not?

white rounded rectangle background

black text

add documentation for words, and a nice dictionary formatter thing

forthmode. the stack is composed of blocks, and the current buffer line is the stack!

can illustrate, showing execution on successive lines

[#A] IN-ENGINE INTERACTIVE LIVECODING IN FORTH.

CURSOR. can i type words into the buffer anywhere and create stuff? YES WHOLE window is SHELL can click existing words to insert them at point?? can run whole buffer

http://grobots.sourceforge.net/

VISUAL PROGRAMMING WITH THE KEYBOARD. visiprog does not require mouse.

dialog boxes are hard. instead use keyboard with auto-completion and suggestions like in emacs.

refactor text buffer widget to allow dynamic inline blockification of plain english text, by default, new typed characters are in “text widget” but this can be changed, as well as can the creation parameters for the current block. like Bold Italic.

combine features from the Listener and text buffer into an emacsy thing

simple concatenative syntax, possibly like Forth. look up colorforth, demo tools

Review “THINKING FORTH”

somehow incorporate red eevstars / linkdmode

but can add LISP parentheses at any time

[#B] use a macrolet to allow (next-method –> (apply (get-next-method) …)

[#B] Pretty sexy black rounded corner notifications

notifications and a “notify” function

smile/frown emoticon status

simple ok notification box

generic question dialog box shortcut function

Review GoF design patterns

review other .org file ideas in repo

[#B] buttons for toggle pin,freeze

Archived Entries

fundamental-mode is the basic mode

rename Worlds to Buffers

rename world%player to buffer%cursor <— cursor receives messages

fix listener make-block-package issue

defining new words

executing single words

executing sequences of words (use the lisp reader)

use lisp reader to read embedded lists that are pushed onto stack as a whole

dictionary of words

just store forth definitions in object fields, as methods?

watch fluxus / schemebricks videos.

define-block word <— visual syntax

if a word is dropped onto a word, insert it before the target in the list

click together words visually

use existing list UI’s, just allow lists of words.

how to create a named object (buffer local variable)

how to set a local variable with !

click to highlight word, control-click or right-click to execute

check out RodgerTheGreat’s Deep Mako game

https://github.com/JohnEarnest/Mako/blob/master/games/Deep/Deep.fs once you’ve built maker by running the ant script in the root of the project you can build and run deep via “./maker games/Deep/Deep.fs –run”

be able to blockify ((DEFINE “”) (…..) (….))

And then get back DEFINE name FOO BAR BAZ END

define word, define block, define method

add numbers, strings, and compound phrases to the sidebar dictionary list