textbringer-auto-revert 0.3.0 → 0.3.3
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/lefthook.yml +4 -0
- data/lib/textbringer/auto-revert/version.rb +1 -1
- data/lib/textbringer/auto-revert.rb +9 -1
- data/test/test_helper.rb +20 -1
- data/test/textbringer_auto_revert_test.rb +12 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: adaf19a20128703bbef0907ce335c38b0c2db7c4681b72d675edd27bf13c1902
|
|
4
|
+
data.tar.gz: a5233b3d28f1abaa4271517463d0bfde3ece0ba985b587418ca5590636698a05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 92281f72e3283c3e697746eb63847ae1fc8c0c66a17f8c1cee6c4156fee4ee86e21d1eca432bd9d5c686fcf9fd335bd514a833a04e1a91a890d6cf0de00f9d08
|
|
7
|
+
data.tar.gz: 38c770d1b8bdfb40e927b5a36a550b572e3eec37a85269affbd1a1037b5d0ba19315f5b2f183b0d06f65d3aaf9ea908b383ee47c53810ce745451c89462e3d92
|
data/lefthook.yml
ADDED
|
@@ -12,7 +12,11 @@ module Textbringer
|
|
|
12
12
|
return unless buffer.file_modified?
|
|
13
13
|
|
|
14
14
|
if !buffer.modified?
|
|
15
|
-
buffer.
|
|
15
|
+
if buffer.read_only?
|
|
16
|
+
buffer.read_only_edit { buffer.revert }
|
|
17
|
+
else
|
|
18
|
+
buffer.revert
|
|
19
|
+
end
|
|
16
20
|
message("Reverted buffer from file") if CONFIG[:auto_revert_verbose]
|
|
17
21
|
else
|
|
18
22
|
message("Buffer has unsaved changes; file changed on disk")
|
|
@@ -30,6 +34,10 @@ module Textbringer
|
|
|
30
34
|
end
|
|
31
35
|
end
|
|
32
36
|
|
|
37
|
+
define_command(:global_auto_revert_mode, doc: "Toggle global auto-revert mode.") do
|
|
38
|
+
GlobalAutoRevertMode.toggle
|
|
39
|
+
end
|
|
40
|
+
|
|
33
41
|
# Enable by default on plugin load
|
|
34
42
|
GlobalAutoRevertMode.enable
|
|
35
43
|
GlobalAutoRevertMode.enabled = true
|
data/test/test_helper.rb
CHANGED
|
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
|
|
|
4
4
|
|
|
5
5
|
# Mock Textbringer for testing without the actual dependency
|
|
6
6
|
module Textbringer
|
|
7
|
+
class EditorError < StandardError; end
|
|
7
8
|
CONFIG = {} unless defined?(CONFIG)
|
|
8
9
|
HOOKS = Hash.new { |h, k| h[k] = [] } unless defined?(HOOKS)
|
|
9
10
|
|
|
@@ -20,7 +21,7 @@ module Textbringer
|
|
|
20
21
|
attr_accessor :current, :list
|
|
21
22
|
end
|
|
22
23
|
|
|
23
|
-
attr_accessor :file_name, :name
|
|
24
|
+
attr_accessor :file_name, :name, :read_only
|
|
24
25
|
attr_reader :reverted, :properties
|
|
25
26
|
|
|
26
27
|
def initialize(name: nil, file_name: nil)
|
|
@@ -29,9 +30,22 @@ module Textbringer
|
|
|
29
30
|
@modified = false
|
|
30
31
|
@file_modified = false
|
|
31
32
|
@reverted = false
|
|
33
|
+
@read_only = false
|
|
32
34
|
@properties = {}
|
|
33
35
|
end
|
|
34
36
|
|
|
37
|
+
def read_only?
|
|
38
|
+
@read_only
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def read_only_edit
|
|
42
|
+
old_read_only = @read_only
|
|
43
|
+
@read_only = false
|
|
44
|
+
yield
|
|
45
|
+
ensure
|
|
46
|
+
@read_only = old_read_only
|
|
47
|
+
end
|
|
48
|
+
|
|
35
49
|
def [](key)
|
|
36
50
|
@properties[key]
|
|
37
51
|
end
|
|
@@ -57,6 +71,7 @@ module Textbringer
|
|
|
57
71
|
end
|
|
58
72
|
|
|
59
73
|
def revert
|
|
74
|
+
raise EditorError, "Read-only buffer" if @read_only
|
|
60
75
|
@reverted = true
|
|
61
76
|
end
|
|
62
77
|
end
|
|
@@ -82,6 +97,10 @@ module Textbringer
|
|
|
82
97
|
end
|
|
83
98
|
end
|
|
84
99
|
|
|
100
|
+
def self.define_command(name, doc: nil, &block)
|
|
101
|
+
Commands.define_command(name, doc: doc, &block)
|
|
102
|
+
end
|
|
103
|
+
|
|
85
104
|
class GlobalMinorMode
|
|
86
105
|
class << self
|
|
87
106
|
attr_accessor :enabled
|
|
@@ -87,4 +87,16 @@ class Textbringer::GlobalAutoRevertModeTest < Test::Unit::TestCase
|
|
|
87
87
|
|
|
88
88
|
assert_equal false, @buffer.reverted
|
|
89
89
|
end
|
|
90
|
+
|
|
91
|
+
test "reverts read-only buffer when file is modified" do
|
|
92
|
+
Textbringer::GlobalAutoRevertMode.enable
|
|
93
|
+
@buffer.file_modified = true
|
|
94
|
+
@buffer.modified = false
|
|
95
|
+
@buffer.read_only = true
|
|
96
|
+
|
|
97
|
+
Textbringer::GlobalAutoRevertMode::POST_COMMAND_HOOK.call
|
|
98
|
+
|
|
99
|
+
assert_equal true, @buffer.reverted
|
|
100
|
+
assert_equal true, @buffer.read_only?, "Buffer should remain read-only after revert"
|
|
101
|
+
end
|
|
90
102
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: textbringer-auto-revert
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- yancya
|
|
@@ -35,6 +35,7 @@ files:
|
|
|
35
35
|
- LICENSE.txt
|
|
36
36
|
- README.md
|
|
37
37
|
- Rakefile
|
|
38
|
+
- lefthook.yml
|
|
38
39
|
- lib/textbringer/auto-revert.rb
|
|
39
40
|
- lib/textbringer/auto-revert/version.rb
|
|
40
41
|
- lib/textbringer_plugin.rb
|