glimmer-cs-gladiator 0.2.4 → 0.5.0

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.
@@ -3,9 +3,14 @@ module Glimmer
3
3
  class TextEditor
4
4
  include Glimmer::UI::CustomWidget
5
5
 
6
- options :file
6
+ options :file, :project_dir
7
7
 
8
8
  attr_reader :text_proxy, :text_widget
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
+ }
9
14
 
10
15
  after_body {
11
16
  @text_widget = @text.swt_widget
@@ -16,13 +21,17 @@ module Glimmer
16
21
  composite {
17
22
  layout_data :fill, :fill, true, true
18
23
  grid_layout 2, false
19
- @line_numbers_text = text(:multi) {
24
+ @line_numbers_text = styled_text(:multi, :border) {
20
25
  layout_data(:right, :fill, false, true)
21
26
  font name: 'Consolas', height: OS.mac? ? 15 : 12
22
27
  background color(:widget_background)
23
- foreground rgb(75, 75, 75)
28
+ foreground rgb(0, 0, 250)
24
29
  text bind(file, 'line_numbers_content')
25
- top_index bind(file, 'top_index', read_only: true)
30
+ top_pixel bind(file, 'top_pixel', read_only: true)
31
+ top_margin 5
32
+ right_margin 5
33
+ bottom_margin 5
34
+ left_margin 5
26
35
  on_focus_gained {
27
36
  @text&.swt_widget.setFocus
28
37
  }
@@ -33,15 +42,15 @@ module Glimmer
33
42
  @text&.swt_widget.setFocus
34
43
  }
35
44
  }
36
- @text = text(:multi, :border, :h_scroll, :v_scroll) {
45
+
46
+ @text = send(@text_widget) {
37
47
  layout_data :fill, :fill, true, true
38
48
  font name: 'Consolas', height: OS.mac? ? 15 : 12
39
49
  foreground rgb(75, 75, 75)
40
50
  text bind(file, :content)
41
51
  focus true
42
- selection bind(file, 'selection')
43
- selection_count bind(file, 'selection_count')
44
- top_index bind(file, 'top_index')
52
+ selection bind(file, :selection)
53
+ top_pixel bind(file, 'top_pixel')
45
54
  drop_target(DND::DROP_COPY) {
46
55
  transfer [TextTransfer.getInstance].to_java(Transfer)
47
56
  on_drag_enter { |event|
@@ -49,20 +58,30 @@ module Glimmer
49
58
  }
50
59
  on_drop { |event|
51
60
  Gladiator.drag_and_drop = true
52
- Dir.local_dir.selected_child = nil
53
- Dir.local_dir.selected_child_path = event.data
61
+ project_dir.selected_child = nil
62
+ project_dir.selected_child_path = event.data
54
63
  Gladiator.drag = false
55
64
  }
56
- }
65
+ }
57
66
 
58
67
  on_focus_lost {
59
68
  file&.write_dirty_content
60
69
  }
61
- on_key_pressed { |key_event|
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')
70
+ on_verify_key { |key_event|
71
+ 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
72
  key_event.doit = !Command.redo(file)
73
+ elsif Glimmer::SWT::SWTProxy.include?(key_event.stateMask, COMMAND_KEY, :shift) && extract_char(key_event) == 'r'
74
+ project_dir.selected_child.run
64
75
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'z'
65
76
  key_event.doit = !Command.undo(file)
77
+ elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == 'a'
78
+ key_event.widget.selectAll
79
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'a'
80
+ Command.do(file, :start_of_line)
81
+ key_event.doit = false
82
+ elsif !OS.windows? && key_event.stateMask == swt(:ctrl) && extract_char(key_event) == 'e'
83
+ Command.do(file, :end_of_line)
84
+ key_event.doit = false
66
85
  elsif key_event.stateMask == swt(COMMAND_KEY) && extract_char(key_event) == '/'
67
86
  Command.do(file, :comment_line!)
68
87
  key_event.doit = false
@@ -105,13 +124,13 @@ module Glimmer
105
124
  end
106
125
  }
107
126
  on_verify_text { |verify_event|
108
- key_code = verify_event.keyCode
109
- case key_code
110
- when swt(:cr)
127
+ # TODO convert these into File commands to support Undo/Redo
128
+ case verify_event.text
129
+ when "\n"
111
130
  if file.selection_count.to_i == 0
112
131
  verify_event.text += file.current_line_indentation
113
132
  end
114
- when swt(:tab)
133
+ when "\t"
115
134
  if file.selection_count.to_i > 0
116
135
  Command.do(file, :indent!)
117
136
  verify_event.doit = false
@@ -123,8 +142,7 @@ module Glimmer
123
142
  }
124
143
  }
125
144
  }
126
-
127
-
145
+
128
146
  def extract_char(event)
129
147
  event.keyCode.chr
130
148
  rescue => e
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-cs-gladiator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.5.0
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-07-30 00:00:00.000000000 Z
11
+ date: 2020-11-01 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: 0.4.1
18
+ version: 4.17.7.1
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
- version: 2.0.0
21
+ version: 5.0.0.0
22
22
  name: glimmer-dsl-swt
23
- type: :runtime
24
23
  prerelease: false
24
+ type: :runtime
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.4.1
29
+ version: 4.17.7.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 2.0.0
32
+ version: 5.0.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
@@ -37,8 +37,8 @@ dependencies:
37
37
  - !ruby/object:Gem::Version
38
38
  version: 1.1.1
39
39
  name: filewatcher
40
- type: :runtime
41
40
  prerelease: false
41
+ type: :runtime
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.4
53
53
  name: clipboard
54
- type: :runtime
55
54
  prerelease: false
55
+ type: :runtime
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
- type: :development
69
68
  prerelease: false
69
+ type: :development
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
- type: :development
83
82
  prerelease: false
83
+ type: :development
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
- type: :development
97
96
  prerelease: false
97
+ type: :development
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.1.4
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Gladiator (Glimmer Editor) - Glimmer Custom Shell