glimmer-cs-gladiator 0.5.1 → 0.5.2
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 +2 -2
- data/VERSION +1 -1
- data/lib/glimmer-cs-gladiator.rb +1 -1
- data/lib/models/glimmer/gladiator/command.rb +4 -4
- data/lib/models/glimmer/gladiator/dir.rb +8 -0
- data/lib/models/glimmer/gladiator/file.rb +10 -1
- data/lib/views/glimmer/gladiator.rb +40 -18
- data/lib/views/glimmer/gladiator/text_editor.rb +6 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5de57f9122b239134e9567e99976ed7c5e859edf89a91f72f15f257597ee0815
|
4
|
+
data.tar.gz: 99414159618bea5a0a99fd37772424b452f26471ca6e5dd791ff0ce26135646c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e7d7c9cca67e351dbf169d785c6ef927bcd911f03a5b4505fdd2973c9b9291b1a72f8475dceeae592bb3d56de85a65f96b9f1cb96575dc91768d13b46f52749
|
7
|
+
data.tar.gz: 35c3dc09a4f5d0e29d8e52dd0cbae1ffc879f6d7cd3d5ec0cc2cbabde3475f3898a959c34d7adf60789c9a8c8fa6e2e5ebcfefe9e5e1db8ba0e7281b268ef572
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# <img src='https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-cs-gladiator-logo.svg' height=85 /> Gladiator 0.5.
|
1
|
+
# <img src='https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-cs-gladiator-logo.svg' height=85 /> Gladiator 0.5.2 - [Ugliest Text Editor Ever](https://www.reddit.com/r/ruby/comments/hgve8k/gladiator_glimmer_editor_ugliest_text_editor_ever/)
|
2
2
|
## [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 /> Glimmer Custom Shell](https://github.com/AndyObtiva/glimmer-dsl-swt#custom-shell-gem)
|
3
3
|
[](http://badge.fury.io/rb/glimmer-cs-gladiator)
|
4
4
|
|
@@ -103,7 +103,7 @@ To reuse Gladiator as a Glimmer Custom Shell inside another Glimmer application,
|
|
103
103
|
following to the application's `Gemfile`:
|
104
104
|
|
105
105
|
```
|
106
|
-
gem 'glimmer-cs-gladiator', '~> 0.5.
|
106
|
+
gem 'glimmer-cs-gladiator', '~> 0.5.2'
|
107
107
|
```
|
108
108
|
|
109
109
|
Run:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/glimmer-cs-gladiator.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Glimmer
|
2
2
|
class Gladiator
|
3
|
-
class Command
|
3
|
+
class Command
|
4
4
|
class << self
|
5
5
|
include Glimmer
|
6
6
|
|
@@ -10,10 +10,10 @@ module Glimmer
|
|
10
10
|
|
11
11
|
def command_history_for(file)
|
12
12
|
# keeping a first command to make redo support work by remembering next command after undoing all
|
13
|
-
command_history[file] ||= [Command.new(file)]
|
13
|
+
command_history[file] ||= [Command.new(file)]
|
14
14
|
end
|
15
15
|
|
16
|
-
def do(file, method = nil, command: nil)
|
16
|
+
def do(file, method = nil, command: nil)
|
17
17
|
command ||= Command.new(file, method)
|
18
18
|
command_history_for(file)&.last&.next_command = command
|
19
19
|
command.do
|
@@ -21,7 +21,7 @@ module Glimmer
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def undo(file)
|
24
|
-
return if command_history_for(file).size <= 1
|
24
|
+
return if command_history_for(file).size <= 1
|
25
25
|
command = command_history_for(file).pop
|
26
26
|
command&.undo
|
27
27
|
end
|
@@ -48,6 +48,14 @@ module Glimmer
|
|
48
48
|
is_local_dir ? path : @display_path = @path.sub(project_dir.path, '').sub(/^\//, '')
|
49
49
|
end
|
50
50
|
|
51
|
+
def name=(the_name)
|
52
|
+
self.display_path = display_path.sub(/#{Regexp.escape(@name)}$/, the_name)
|
53
|
+
@name = the_name
|
54
|
+
new_path = ::File.expand_path(display_path)
|
55
|
+
FileUtils.mv(path, new_path)
|
56
|
+
self.path = display_path
|
57
|
+
end
|
58
|
+
|
51
59
|
def children
|
52
60
|
@children ||= retrieve_children
|
53
61
|
end
|
@@ -51,7 +51,7 @@ module Glimmer
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def scratchpad?
|
54
|
-
path.empty?
|
54
|
+
path.to_s.empty?
|
55
55
|
end
|
56
56
|
|
57
57
|
def backup_properties
|
@@ -98,6 +98,15 @@ module Glimmer
|
|
98
98
|
self.selection = Point.new(caret_position, caret_position + value.to_i)
|
99
99
|
end
|
100
100
|
|
101
|
+
def name=(the_name)
|
102
|
+
new_path = path.sub(/#{Regexp.escape(@name)}$/, the_name) unless scratchpad?
|
103
|
+
@name = the_name
|
104
|
+
if !scratchpad? && ::File.exist?(path)
|
105
|
+
FileUtils.mv(path, new_path)
|
106
|
+
self.path = new_path
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
101
110
|
def dirty_content=(the_content)
|
102
111
|
@dirty_content = the_content
|
103
112
|
notify_observers(:content)
|
@@ -23,7 +23,7 @@ module Glimmer
|
|
23
23
|
attr_accessor :drag_and_drop
|
24
24
|
attr_accessor :drag
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
## Add options like the following to configure CustomShell by outside consumers
|
28
28
|
#
|
29
29
|
# options :title, :background_color
|
@@ -42,9 +42,8 @@ module Glimmer
|
|
42
42
|
#
|
43
43
|
#
|
44
44
|
before_body {
|
45
|
-
|
46
|
-
|
47
|
-
}
|
45
|
+
# TODO consider doing loading project files after displaying the GUI instead of holding it up before
|
46
|
+
project_dir #pre-initialize directory
|
48
47
|
at_exit do
|
49
48
|
project_dir.selected_child&.write_raw_dirty_content
|
50
49
|
end
|
@@ -582,8 +581,12 @@ module Glimmer
|
|
582
581
|
end
|
583
582
|
end
|
584
583
|
|
584
|
+
def find_tab_item(file_path)
|
585
|
+
@current_tab_folder.swt_widget.getItems.detect { |ti| ti.getData('file_path') == file_path }
|
586
|
+
end
|
587
|
+
|
585
588
|
def selected_tab_item
|
586
|
-
|
589
|
+
find_tab_item(project_dir.selected_child&.path)
|
587
590
|
end
|
588
591
|
|
589
592
|
def other_tab_items
|
@@ -615,19 +618,15 @@ module Glimmer
|
|
615
618
|
@file_tree.swt_widget.showItem(parent_tree_item)
|
616
619
|
parent_tree_item.setExpanded(true)
|
617
620
|
# TODO close text editor tab
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
+
found_tab_item = find_tab_item(file.path)
|
622
|
+
if found_tab_item
|
623
|
+
project_dir.selected_child_path_history.delete(found_tab_item.getData('file_path'))
|
624
|
+
found_tab_item.getData('proxy')&.dispose
|
625
|
+
end
|
621
626
|
rescue => e
|
622
627
|
puts e.full_message
|
623
628
|
end
|
624
629
|
|
625
|
-
def rename_selected_tree_item
|
626
|
-
project_dir.pause_refresh
|
627
|
-
tree_item = @file_tree.swt_widget.getSelection.first
|
628
|
-
rename_tree_item(tree_item)
|
629
|
-
end
|
630
|
-
|
631
630
|
def add_new_directory_to_selected_tree_item
|
632
631
|
project_dir.pause_refresh
|
633
632
|
tree_item = @file_tree.swt_widget.getSelection.first
|
@@ -642,7 +641,7 @@ module Glimmer
|
|
642
641
|
project_dir.refresh(async: false, force: true)
|
643
642
|
new_tree_item = @file_tree.depth_first_search {|ti| ti.getData.path == new_directory_path}.first
|
644
643
|
@file_tree.swt_widget.showItem(new_tree_item)
|
645
|
-
rename_tree_item(new_tree_item
|
644
|
+
rename_tree_item(new_tree_item)
|
646
645
|
end
|
647
646
|
|
648
647
|
def add_new_file_to_selected_tree_item
|
@@ -662,14 +661,37 @@ module Glimmer
|
|
662
661
|
rename_tree_item(new_tree_item, true)
|
663
662
|
end
|
664
663
|
|
665
|
-
def
|
664
|
+
def rename_selected_tree_item
|
665
|
+
project_dir.pause_refresh
|
666
|
+
tree_item = @file_tree.swt_widget.getSelection.first
|
667
|
+
rename_tree_item(tree_item)
|
668
|
+
end
|
669
|
+
|
670
|
+
def rename_tree_item(tree_item, new_file = false)
|
671
|
+
original_file = tree_item.getData
|
672
|
+
current_file = project_dir.selected_child_path == original_file.path
|
673
|
+
found_tab_item = find_tab_item(original_file.path)
|
674
|
+
found_text_editor = found_tab_item&.getData('text_editor')
|
666
675
|
@file_tree.edit_tree_item(
|
667
676
|
tree_item,
|
668
677
|
after_write: -> (edited_tree_item) {
|
669
678
|
file = edited_tree_item.getData
|
670
679
|
file_path = file.path
|
671
|
-
|
672
|
-
|
680
|
+
file.name
|
681
|
+
if new_file
|
682
|
+
project_dir.selected_child_path = file_path
|
683
|
+
else
|
684
|
+
found_text_editor&.file = file
|
685
|
+
found_tab_item&.setData('file', file)
|
686
|
+
found_tab_item&.setData('file_path', file.path)
|
687
|
+
found_tab_item&.setText(file.name)
|
688
|
+
body_root.pack_same_size
|
689
|
+
if current_file
|
690
|
+
project_dir.selected_child_path = file_path
|
691
|
+
else
|
692
|
+
selected_tab_item&.getData('text_editor')&.text_widget&.setFocus
|
693
|
+
end
|
694
|
+
end
|
673
695
|
project_dir.resume_refresh
|
674
696
|
},
|
675
697
|
after_cancel: -> {
|
@@ -26,12 +26,13 @@ module Glimmer
|
|
26
26
|
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
27
27
|
background color(:widget_background)
|
28
28
|
foreground rgb(0, 0, 250)
|
29
|
-
text bind(
|
30
|
-
top_pixel bind(
|
29
|
+
text bind(self, 'file.line_numbers_content')
|
30
|
+
top_pixel bind(self, 'file.top_pixel', read_only: true)
|
31
31
|
top_margin 5
|
32
32
|
right_margin 5
|
33
33
|
bottom_margin 5
|
34
34
|
left_margin 5
|
35
|
+
editable false
|
35
36
|
on_focus_gained {
|
36
37
|
@text&.swt_widget.setFocus
|
37
38
|
}
|
@@ -47,10 +48,10 @@ module Glimmer
|
|
47
48
|
layout_data :fill, :fill, true, true
|
48
49
|
font name: 'Consolas', height: OS.mac? ? 15 : 12
|
49
50
|
foreground rgb(75, 75, 75)
|
50
|
-
text bind(
|
51
|
+
text bind(self, 'file.content')
|
51
52
|
focus true
|
52
|
-
selection bind(
|
53
|
-
top_pixel bind(
|
53
|
+
selection bind(self, 'file.selection')
|
54
|
+
top_pixel bind(self, 'file.top_pixel')
|
54
55
|
drop_target(DND::DROP_COPY) {
|
55
56
|
transfer [TextTransfer.getInstance].to_java(Transfer)
|
56
57
|
on_drag_enter { |event|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-cs-gladiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
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-
|
11
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|