glimmer-cs-gladiator 0.6.1 → 0.7.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/CHANGELOG.md +241 -0
- data/LICENSE.txt +1 -1
- data/README.md +28 -10
- data/VERSION +1 -1
- data/glimmer-cs-gladiator.gemspec +70 -0
- data/images/glimmer-cs-gladiator-logo.png +0 -0
- data/lib/models/glimmer/gladiator/dir.rb +2 -2
- data/lib/models/glimmer/gladiator/file.rb +23 -15
- data/lib/views/glimmer/gladiator.rb +754 -510
- data/lib/views/glimmer/gladiator/text_editor.rb +115 -96
- metadata +16 -12
@@ -5,60 +5,43 @@ module Glimmer
|
|
5
5
|
|
6
6
|
options :file, :project_dir
|
7
7
|
|
8
|
-
attr_reader :text_proxy
|
8
|
+
attr_reader :text_proxy
|
9
9
|
|
10
|
-
before_body {
|
11
|
-
@is_code_file = file.scratchpad? || file.path.end_with?('.rb')
|
12
|
-
@text_widget = @is_code_file ? 'code_text' : 'styled_text'
|
13
|
-
}
|
14
|
-
|
15
10
|
after_body {
|
16
|
-
|
17
|
-
@text_proxy = @text
|
11
|
+
load_content
|
18
12
|
}
|
19
13
|
|
20
14
|
body {
|
21
15
|
composite {
|
22
|
-
grid_layout(2, false)
|
23
|
-
# TODO troubleshoot why adding margin height 0 causes gladiator to start resizing window smaller than necessary upon launch of Gladiator
|
24
|
-
# {
|
25
|
-
# margin_height 0
|
26
|
-
# }
|
27
|
-
|
16
|
+
grid_layout(2, false)
|
28
17
|
layout_data :fill, :fill, true, true
|
29
18
|
@line_numbers_text = styled_text(:multi, :border) {
|
30
19
|
layout_data(:right, :fill, false, true)
|
31
|
-
|
20
|
+
text ' '*4
|
32
21
|
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
33
22
|
background color(:widget_background)
|
34
23
|
foreground :dark_blue
|
35
|
-
text bind(self, 'file.line_numbers_content')
|
36
|
-
top_pixel bind(self, 'file.top_pixel', read_only: true)
|
37
24
|
top_margin 5
|
38
25
|
right_margin 5
|
39
26
|
bottom_margin 5
|
40
27
|
left_margin 5
|
41
28
|
editable false
|
42
29
|
on_focus_gained {
|
43
|
-
@
|
30
|
+
@text_proxy&.swt_widget.setFocus
|
44
31
|
}
|
45
32
|
on_key_pressed {
|
46
|
-
@
|
33
|
+
@text_proxy&.swt_widget.setFocus
|
47
34
|
}
|
48
35
|
on_mouse_up {
|
49
|
-
@
|
36
|
+
@text_proxy&.swt_widget.setFocus
|
50
37
|
}
|
51
38
|
}
|
52
39
|
|
53
|
-
@
|
40
|
+
@text_proxy = send(text_widget_keyword) { |the_text|
|
54
41
|
layout_data :fill, :fill, true, true
|
55
42
|
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
56
43
|
foreground rgb(75, 75, 75)
|
57
|
-
text bind(self, 'file.content')
|
58
44
|
focus true
|
59
|
-
selection_count bind(self, 'file.selection_count')
|
60
|
-
caret_position bind(self, 'file.caret_position')
|
61
|
-
top_pixel bind(self, 'file.top_pixel')
|
62
45
|
top_margin 5
|
63
46
|
right_margin 5
|
64
47
|
bottom_margin 5
|
@@ -76,76 +59,8 @@ module Glimmer
|
|
76
59
|
}
|
77
60
|
}
|
78
61
|
|
79
|
-
|
80
|
-
|
81
|
-
}
|
82
|
-
on_verify_key { |key_event|
|
83
|
-
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')
|
84
|
-
key_event.doit = !Command.redo(file)
|
85
|
-
elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
|
86
|
-
project_dir.selected_child.run
|
87
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
|
88
|
-
key_event.doit = !Command.undo(file)
|
89
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
|
90
|
-
key_event.widget.selectAll
|
91
|
-
elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
|
92
|
-
Command.do(file, :start_of_line)
|
93
|
-
key_event.doit = false
|
94
|
-
elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
|
95
|
-
Command.do(file, :end_of_line)
|
96
|
-
key_event.doit = false
|
97
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
|
98
|
-
Command.do(file, :comment_line!)
|
99
|
-
key_event.doit = false
|
100
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
|
101
|
-
Command.do(file, :kill_line!)
|
102
|
-
key_event.doit = false
|
103
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
|
104
|
-
Command.do(file, :duplicate_line!)
|
105
|
-
key_event.doit = false
|
106
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
|
107
|
-
Command.do(file, :outdent!)
|
108
|
-
key_event.doit = false
|
109
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
|
110
|
-
Command.do(file, :indent!)
|
111
|
-
key_event.doit = false
|
112
|
-
elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
|
113
|
-
Command.do(file, :prefix_new_line!)
|
114
|
-
key_event.doit = false
|
115
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
|
116
|
-
Command.do(file, :insert_new_line!)
|
117
|
-
key_event.doit = false
|
118
|
-
elsif key_event.keyCode == swt(:page_up)
|
119
|
-
file.page_up
|
120
|
-
key_event.doit = false
|
121
|
-
elsif key_event.keyCode == swt(:page_down)
|
122
|
-
file.page_down
|
123
|
-
key_event.doit = false
|
124
|
-
elsif key_event.keyCode == swt(:home)
|
125
|
-
file.home
|
126
|
-
key_event.doit = false
|
127
|
-
elsif key_event.keyCode == swt(:end)
|
128
|
-
file.end
|
129
|
-
key_event.doit = false
|
130
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
|
131
|
-
Command.do(file, :move_up!)
|
132
|
-
key_event.doit = false
|
133
|
-
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
|
134
|
-
Command.do(file, :move_down!)
|
135
|
-
key_event.doit = false
|
136
|
-
end
|
137
|
-
}
|
138
|
-
on_verify_text { |verify_event|
|
139
|
-
# TODO convert these into File commands to support Undo/Redo
|
140
|
-
case verify_event.text
|
141
|
-
when "\n"
|
142
|
-
if file.selection_count.to_i == 0
|
143
|
-
verify_event.text += file.current_line_indentation
|
144
|
-
end
|
145
|
-
when "\t"
|
146
|
-
Command.do(file, :indent!)
|
147
|
-
verify_event.doit = false
|
148
|
-
end
|
62
|
+
on_focus_gained {
|
63
|
+
load_content
|
149
64
|
}
|
150
65
|
}
|
151
66
|
}
|
@@ -156,8 +71,112 @@ module Glimmer
|
|
156
71
|
rescue => e
|
157
72
|
nil
|
158
73
|
end
|
159
|
-
|
74
|
+
|
75
|
+
def text_widget_keyword
|
76
|
+
is_code_file = file.scratchpad? || file.path.end_with?('.rb')
|
77
|
+
is_code_file ? 'code_text' : 'styled_text'
|
78
|
+
end
|
79
|
+
|
80
|
+
def text_widget
|
81
|
+
@text_proxy.swt_widget
|
82
|
+
end
|
83
|
+
|
84
|
+
def load_content
|
85
|
+
if !@initialized && !Gladiator.startup
|
86
|
+
load_line_numbers_text_content
|
87
|
+
load_text_content
|
88
|
+
@initialized = true
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def load_line_numbers_text_content
|
93
|
+
@line_numbers_text.content {
|
94
|
+
text bind(self, 'file.line_numbers_content')
|
95
|
+
top_pixel bind(self, 'file.top_pixel', read_only: true)
|
96
|
+
}
|
97
|
+
end
|
98
|
+
|
99
|
+
def load_text_content
|
100
|
+
@text_proxy.content {
|
101
|
+
text bind(self, 'file.content')
|
102
|
+
selection_count bind(self, 'file.selection_count')
|
103
|
+
caret_position bind(self, 'file.caret_position')
|
104
|
+
top_pixel bind(self, 'file.top_pixel')
|
105
|
+
on_focus_lost {
|
106
|
+
file&.write_dirty_content
|
107
|
+
}
|
108
|
+
on_verify_key { |key_event|
|
109
|
+
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')
|
110
|
+
key_event.doit = !Command.redo(file)
|
111
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
|
112
|
+
key_event.doit = !Command.undo(file)
|
113
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
|
114
|
+
key_event.widget.selectAll
|
115
|
+
elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
|
116
|
+
Command.do(file, :start_of_line)
|
117
|
+
key_event.doit = false
|
118
|
+
elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
|
119
|
+
Command.do(file, :end_of_line)
|
120
|
+
key_event.doit = false
|
121
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
|
122
|
+
Command.do(file, :comment_line!)
|
123
|
+
key_event.doit = false
|
124
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'k'
|
125
|
+
Command.do(file, :kill_line!)
|
126
|
+
key_event.doit = false
|
127
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'd'
|
128
|
+
Command.do(file, :duplicate_line!)
|
129
|
+
key_event.doit = false
|
130
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '['
|
131
|
+
Command.do(file, :outdent!)
|
132
|
+
key_event.doit = false
|
133
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == ']'
|
134
|
+
Command.do(file, :indent!)
|
135
|
+
key_event.doit = false
|
136
|
+
elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && key_event.keyCode == swt(:cr)
|
137
|
+
Command.do(file, :prefix_new_line!)
|
138
|
+
key_event.doit = false
|
139
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:cr)
|
140
|
+
Command.do(file, :insert_new_line!)
|
141
|
+
key_event.doit = false
|
142
|
+
elsif key_event.keyCode == swt(:page_up)
|
143
|
+
file.page_up
|
144
|
+
key_event.doit = false
|
145
|
+
elsif key_event.keyCode == swt(:page_down)
|
146
|
+
file.page_down
|
147
|
+
key_event.doit = false
|
148
|
+
elsif key_event.keyCode == swt(:home)
|
149
|
+
file.home
|
150
|
+
key_event.doit = false
|
151
|
+
elsif key_event.keyCode == swt(:end)
|
152
|
+
file.end
|
153
|
+
key_event.doit = false
|
154
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_up)
|
155
|
+
Command.do(file, :move_up!)
|
156
|
+
key_event.doit = false
|
157
|
+
elsif key_event.stateMask == swt(COMMAND_KEY) && key_event.keyCode == swt(:arrow_down)
|
158
|
+
Command.do(file, :move_down!)
|
159
|
+
key_event.doit = false
|
160
|
+
end
|
161
|
+
}
|
162
|
+
on_verify_text { |verify_event|
|
163
|
+
# TODO convert these into File commands to support Undo/Redo
|
164
|
+
case verify_event.text
|
165
|
+
when "\n"
|
166
|
+
if file.selection_count.to_i == 0
|
167
|
+
verify_event.text += file.current_line_indentation
|
168
|
+
end
|
169
|
+
when "\t"
|
170
|
+
Command.do(file, :indent!)
|
171
|
+
verify_event.doit = false
|
172
|
+
end
|
173
|
+
}
|
174
|
+
}
|
175
|
+
end
|
176
|
+
|
160
177
|
end
|
178
|
+
|
161
179
|
end
|
180
|
+
|
162
181
|
end
|
163
182
|
|
metadata
CHANGED
@@ -1,32 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-cs-gladiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.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:
|
11
|
+
date: 2021-01-15 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
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 4.
|
18
|
+
version: 4.18.0.0
|
19
19
|
- - "<"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 5.0.0.0
|
22
22
|
name: glimmer-dsl-swt
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 4.
|
29
|
+
version: 4.18.0.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 5.0.0.0
|
@@ -37,8 +37,8 @@ dependencies:
|
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: 1.1.1
|
39
39
|
name: filewatcher
|
40
|
-
prerelease: false
|
41
40
|
type: :runtime
|
41
|
+
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 1.3.5
|
53
53
|
name: clipboard
|
54
|
-
prerelease: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
@@ -65,8 +65,8 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: 3.5.0
|
67
67
|
name: rspec
|
68
|
-
prerelease: false
|
69
68
|
type: :development
|
69
|
+
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
@@ -79,8 +79,8 @@ dependencies:
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: 2.3.9
|
81
81
|
name: jeweler
|
82
|
-
prerelease: false
|
83
82
|
type: :development
|
83
|
+
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - '='
|
@@ -93,8 +93,8 @@ dependencies:
|
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0'
|
95
95
|
name: simplecov
|
96
|
-
prerelease: false
|
97
96
|
type: :development
|
97
|
+
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - ">="
|
@@ -114,11 +114,14 @@ extra_rdoc_files:
|
|
114
114
|
- LICENSE.txt
|
115
115
|
- README.md
|
116
116
|
files:
|
117
|
+
- CHANGELOG.md
|
117
118
|
- LICENSE.txt
|
118
119
|
- README.md
|
119
120
|
- VERSION
|
120
121
|
- bin/gladiator
|
121
122
|
- bin/gladiator_runner.rb
|
123
|
+
- glimmer-cs-gladiator.gemspec
|
124
|
+
- images/glimmer-cs-gladiator-logo.png
|
122
125
|
- lib/glimmer-cs-gladiator.rb
|
123
126
|
- lib/models/glimmer/gladiator/command.rb
|
124
127
|
- lib/models/glimmer/gladiator/dir.rb
|
@@ -144,8 +147,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
147
|
- !ruby/object:Gem::Version
|
145
148
|
version: '0'
|
146
149
|
requirements: []
|
147
|
-
rubygems_version: 3.
|
150
|
+
rubygems_version: 3.0.6
|
148
151
|
signing_key:
|
149
152
|
specification_version: 4
|
150
|
-
summary: Gladiator (Glimmer Editor) - Glimmer Custom Shell
|
153
|
+
summary: Gladiator (Glimmer Editor) - Glimmer Custom Shell - Text Editor Built in
|
154
|
+
Ruby
|
151
155
|
test_files: []
|