annotate src/luan_editor/editor.luan @ 75:7f5b3824f4d4

add Windows
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 18 Jun 2025 18:57:34 -0600
parents 824f6d74b1d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local ipairs = Luan.ipairs or error()
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
4 local stringify = Luan.stringify or error()
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local String = require "luan:String.luan"
53
d5681da8ece8 add website
Franklin Schmidt <fschmidt@gmail.com>
parents: 37
diff changeset
6 local to_number = String.to_number or error()
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Io = require "luan:Io.luan"
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local new_file = Io.schemes.file or error()
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
9 local Thread = require "luan:Thread.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
10 local sleep = Thread.sleep or error()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
11 local Swing_runner = require "luan:swing/Swing_runner.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
12 local swing_run = Swing_runner.run or error()
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
13 local Launcher = require "luan:swing/Launcher.luan"
53
d5681da8ece8 add website
Franklin Schmidt <fschmidt@gmail.com>
parents: 37
diff changeset
14 local Java = require "classpath:luan_editor/Java.luan"
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 local Logging = require "luan:logging/Logging.luan"
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 local logger = Logging.logger "editor/editor"
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
19 local function open(args)
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
20 if #args == 0 then
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
21 swing_run( function()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
22 local Window = require "classpath:luan_editor/Window.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
23 local new_window = Window.new_window or error()
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
25 new_window()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
26 end )
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 else
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 for _, arg in ipairs(args) do
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 local file = new_file(arg)
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
30 swing_run( function()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
31 local Window = require "classpath:luan_editor/Window.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
32 local new_window = Window.new_window or error()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
33
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
34 new_window(file)
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
35 end )
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
36 sleep(100)
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 end
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 end
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
39 end
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
40
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
41 local function reopen(args)
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
42 if #args == 0 then
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
43 swing_run( function()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
44 local Window = require "classpath:luan_editor/Window.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
45 local open_window = Window.open_window or error()
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
46
75
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
47 open_window(nil)
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
48 end )
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
49 else
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
50 for _, arg in ipairs(args) do
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
51 swing_run( function()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
52 local Window = require "classpath:luan_editor/Window.luan"
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
53 local open_window = Window.open_window or error()
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
54
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
55 open_window(arg)
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
56 end )
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
57 sleep(100)
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
58 end
7f5b3824f4d4 add Windows
Franklin Schmidt <fschmidt@gmail.com>
parents: 59
diff changeset
59 end
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
60 end
37
b7ff52d45b9a copy from luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61
59
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
62 local port = Java.port
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
63 if port ~= nil then
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
64 Launcher.port = to_number(port) or error("bad port: "..port)
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
65 end
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
66
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
67 local args = {nil}
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
68 for _, arg in ipairs(Luan.arg) do
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
69 local file = new_file(arg)
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
70 file = file.canonical().to_string()
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
71 args[#args+1] = file
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
72 end
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
73
824f6d74b1d4 use launcher
Franklin Schmidt <fschmidt@gmail.com>
parents: 56
diff changeset
74 Launcher.launch(open,reopen,args)