Quality of life improvements
This commit is contained in:
parent
74d184597e
commit
6e85ecda80
29
README.md
Normal file
29
README.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Honeylisp
|
||||
## A hackable programming envrionment for the Apple II
|
||||
|
||||
Honeylisp is a set of integrated tools designed to allow tight iteration when
|
||||
developing low-level 6502 code. It is written in Fennel, a Lisp dialect that
|
||||
compiles to Lua. You program the Apple II by writing Fennel code that generates
|
||||
6502 assembly as simple lists-of-symbols. You can then interactively update
|
||||
that code while it runs with simple commands in the lite editor.
|
||||
|
||||
Honeylisp comprises:
|
||||
* A hackable programmer's text editor (lite)
|
||||
* Ported to the Love2D game engine framework (lite-hearted)
|
||||
* A simple imgui-inspired library for quickly building custom editors
|
||||
* An extensible 6502 assembler
|
||||
* A Forth-like stack-based virtual machine for the 6502
|
||||
* Deep MAME integration (jeejah)
|
||||
* Live interactive eval while your game is running
|
||||
* Hot code reload
|
||||
* TODO: snapshotting / rewind, rich symbols visible in the MAME debugger
|
||||
* Actual hardware integration
|
||||
* Supports uploading to the Apple II via the cassette port or a serial card
|
||||
* TODO: Live interactive eval and hot code reload
|
||||
|
||||
The main goal of the project is to support the creation of a game called Neut
|
||||
Tower by its developer, but it is potentially generally interesting and useful
|
||||
to others. Its design is focussed on the molding of the tool to your individual
|
||||
needs; you are encouraged to fork it and modify any part to suit your taste.
|
||||
|
||||
|
2
vendor/lite/data/core/command.lua
vendored
2
vendor/lite/data/core/command.lua
vendored
|
@ -16,7 +16,7 @@ function command.add(predicate, map)
|
|||
predicate = function() return core.active_view:is(class) end
|
||||
end
|
||||
for name, fn in pairs(map) do
|
||||
assert(not command.map[name], "command already exists: " .. name)
|
||||
-- assert(not command.map[name], "command already exists: " .. name)
|
||||
command.map[name] = { predicate = predicate, perform = fn }
|
||||
end
|
||||
end
|
||||
|
|
1
vendor/lite/data/core/init.lua
vendored
1
vendor/lite/data/core/init.lua
vendored
|
@ -311,6 +311,7 @@ end
|
|||
function core.try(fn, ...)
|
||||
local err
|
||||
local ok, res = xpcall(fn, function(msg)
|
||||
print(debug.traceback())
|
||||
local item = core.error("%s", msg)
|
||||
item.info = debug.traceback(nil, 2):gsub("\t", "")
|
||||
err = msg
|
||||
|
|
1
vendor/lite/data/plugins/autoinsert.lua
vendored
Symbolic link
1
vendor/lite/data/plugins/autoinsert.lua
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../lite-plugins/plugins/autoinsert.lua
|
1
vendor/lite/data/plugins/bracketmatch.lua
vendored
Symbolic link
1
vendor/lite/data/plugins/bracketmatch.lua
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../lite-plugins/plugins/bracketmatch.lua
|
1
vendor/lite/data/plugins/language_fennel.lua
vendored
Symbolic link
1
vendor/lite/data/plugins/language_fennel.lua
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../lite-plugins/plugins/language_fennel.lua
|
1
vendor/lite/data/plugins/selectionhighlight.lua
vendored
Symbolic link
1
vendor/lite/data/plugins/selectionhighlight.lua
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../lite-plugins/plugins/selectionhighlight.lua
|
Loading…
Reference in a new issue