glimmer-cs-gladiator 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +68 -25
- data/VERSION +1 -0
- data/lib/glimmer-cs-gladiator.rb +1 -0
- data/lib/models/glimmer/gladiator/command.rb +75 -0
- data/lib/models/glimmer/gladiator/dir.rb +9 -1
- data/lib/models/glimmer/gladiator/file.rb +51 -11
- data/lib/views/glimmer/gladiator.rb +289 -130
- data/lib/views/glimmer/gladiator/text_editor.rb +58 -24
- metadata +15 -21
@@ -5,10 +5,11 @@ module Glimmer
|
|
5
5
|
|
6
6
|
options :file
|
7
7
|
|
8
|
-
attr_reader :text_widget
|
8
|
+
attr_reader :text_proxy, :text_widget
|
9
9
|
|
10
10
|
after_body {
|
11
11
|
@text_widget = @text.swt_widget
|
12
|
+
@text_proxy = @text
|
12
13
|
}
|
13
14
|
|
14
15
|
body {
|
@@ -17,7 +18,7 @@ module Glimmer
|
|
17
18
|
grid_layout 2, false
|
18
19
|
@line_numbers_text = text(:multi) {
|
19
20
|
layout_data(:right, :fill, false, true)
|
20
|
-
font name: 'Consolas', height: 15
|
21
|
+
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
21
22
|
background color(:widget_background)
|
22
23
|
foreground rgb(75, 75, 75)
|
23
24
|
text bind(file, 'line_numbers_content')
|
@@ -34,31 +35,55 @@ module Glimmer
|
|
34
35
|
}
|
35
36
|
@text = text(:multi, :border, :h_scroll, :v_scroll) {
|
36
37
|
layout_data :fill, :fill, true, true
|
37
|
-
font name: 'Consolas', height: 15
|
38
|
+
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
38
39
|
foreground rgb(75, 75, 75)
|
39
|
-
text bind(file,
|
40
|
+
text bind(file, :content)
|
40
41
|
focus true
|
41
|
-
|
42
|
+
selection bind(file, 'selection')
|
42
43
|
selection_count bind(file, 'selection_count')
|
43
44
|
top_index bind(file, 'top_index')
|
45
|
+
drop_target(DND::DROP_COPY) {
|
46
|
+
transfer [TextTransfer.getInstance].to_java(Transfer)
|
47
|
+
on_drag_enter { |event|
|
48
|
+
event.detail = DND::DROP_COPY
|
49
|
+
}
|
50
|
+
on_drop { |event|
|
51
|
+
Gladiator.drag_and_drop = true
|
52
|
+
Dir.local_dir.selected_child = nil
|
53
|
+
Dir.local_dir.selected_child_path = event.data
|
54
|
+
Gladiator.drag = false
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
44
58
|
on_focus_lost {
|
45
59
|
file&.write_dirty_content
|
46
60
|
}
|
47
61
|
on_key_pressed { |key_event|
|
48
|
-
if key_event.stateMask == swt(
|
49
|
-
|
50
|
-
elsif key_event.stateMask == swt(
|
51
|
-
|
52
|
-
elsif key_event.stateMask == swt(
|
53
|
-
file
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
elsif
|
59
|
-
file
|
60
|
-
|
61
|
-
|
62
|
+
if (Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'z') || (key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'y')
|
63
|
+
key_event.doit = !Command.redo(file)
|
64
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
|
65
|
+
key_event.doit = !Command.undo(file)
|
66
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
|
67
|
+
Command.do(file, :comment_line!)
|
68
|
+
key_event.doit = false
|
69
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
|
70
|
+
Command.do(file, :kill_line!)
|
71
|
+
key_event.doit = false
|
72
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
|
73
|
+
Command.do(file, :duplicate_line!)
|
74
|
+
key_event.doit = false
|
75
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
|
76
|
+
Command.do(file, :outdent!)
|
77
|
+
key_event.doit = false
|
78
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
|
79
|
+
Command.do(file, :indent!)
|
80
|
+
key_event.doit = false
|
81
|
+
elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
|
82
|
+
Command.do(file, :prefix_new_line!)
|
83
|
+
key_event.doit = false
|
84
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
|
85
|
+
Command.do(file, :insert_new_line!)
|
86
|
+
key_event.doit = false
|
62
87
|
elsif key_event.keyCode == swt(:page_up)
|
63
88
|
file.page_up
|
64
89
|
key_event.doit = false
|
@@ -71,11 +96,11 @@ module Glimmer
|
|
71
96
|
elsif key_event.keyCode == swt(:end)
|
72
97
|
file.end
|
73
98
|
key_event.doit = false
|
74
|
-
elsif key_event.stateMask == swt(
|
75
|
-
file
|
99
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
|
100
|
+
Command.do(file, :move_up!)
|
76
101
|
key_event.doit = false
|
77
|
-
elsif key_event.stateMask == swt(
|
78
|
-
file
|
102
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
|
103
|
+
Command.do(file, :move_down!)
|
79
104
|
key_event.doit = false
|
80
105
|
end
|
81
106
|
}
|
@@ -88,7 +113,7 @@ module Glimmer
|
|
88
113
|
end
|
89
114
|
when swt(:tab)
|
90
115
|
if file.selection_count.to_i > 0
|
91
|
-
file
|
116
|
+
Command.do(file, :indent!)
|
92
117
|
verify_event.doit = false
|
93
118
|
else
|
94
119
|
verify_event.text = ' '
|
@@ -98,6 +123,15 @@ module Glimmer
|
|
98
123
|
}
|
99
124
|
}
|
100
125
|
}
|
126
|
+
|
127
|
+
|
128
|
+
def extract_char(event)
|
129
|
+
event.keyCode.chr
|
130
|
+
rescue => e
|
131
|
+
nil
|
132
|
+
end
|
133
|
+
|
101
134
|
end
|
102
135
|
end
|
103
136
|
end
|
137
|
+
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-cs-gladiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- - "
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 0.1.3
|
19
|
+
- - "<"
|
17
20
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
19
|
-
name: glimmer
|
21
|
+
version: 2.0.0
|
22
|
+
name: glimmer-dsl-swt
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: 0.1.3
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
29
35
|
requirements:
|
@@ -94,20 +100,6 @@ dependencies:
|
|
94
100
|
- - ">="
|
95
101
|
- !ruby/object:Gem::Version
|
96
102
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 0.8.1
|
103
|
-
name: puts_debuggerer
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.8.1
|
111
103
|
description: Gladiator (short for Glimmer Editor) is a Glimmer sample project under
|
112
104
|
on-going development. It is not intended to be a full-fledged editor by any means,
|
113
105
|
yet mostly a fun educational exercise in using Glimmer to build a text editor. Gladiator
|
@@ -124,9 +116,11 @@ extra_rdoc_files:
|
|
124
116
|
files:
|
125
117
|
- LICENSE.txt
|
126
118
|
- README.md
|
119
|
+
- VERSION
|
127
120
|
- bin/gladiator
|
128
121
|
- bin/gladiator_runner.rb
|
129
122
|
- lib/glimmer-cs-gladiator.rb
|
123
|
+
- lib/models/glimmer/gladiator/command.rb
|
130
124
|
- lib/models/glimmer/gladiator/dir.rb
|
131
125
|
- lib/models/glimmer/gladiator/file.rb
|
132
126
|
- lib/views/glimmer/gladiator.rb
|