working_set 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8d080e5e195b802c64757728b39a21a747e029c9a067bd523a115208aed4038
4
- data.tar.gz: b02705986887a8ff43aeb8945e3356032f97b2ed6e05458f4438e2b55e1f5ded
3
+ metadata.gz: 206cdf716829db1ef95c8098067f726c389318b6b791ebecfb00c62bd23a87f5
4
+ data.tar.gz: 490b5875cdab2984e8a244ed851af4f732b73bcfb2e0c2d369a620950d438ba9
5
5
  SHA512:
6
- metadata.gz: b5699a5b2f85909e67ec262ed787ba94e47015874fb4e931b0bd646229bb09ae8b1737705273d3152bcbc54dabda3a50adc3033c49332c4d2133cd03c1e5963a
7
- data.tar.gz: 119b23428f7bbbae2025c186371c0a857927cd58230b153c6b327c77d0234b17054a50ae81760d8e9f8b27554dcea8f7cef73be61db0f99838cacecbfa354c1a
6
+ metadata.gz: 0ada452dfbbc66b062f073654256b0f9aa5670f55d0fb6b554a05c292191200d6dff00637c9e15c0a171e3340743c68b13077cafc1e8077649924ebe2c11c0ad
7
+ data.tar.gz: b59fb38299ddfed66968a700dbccb862eb0a3a70d99a7079fbc57f12d4f71591c6e356c94343bed3e265f9045b810813159ad970f3203574700da1ab86c6725e
@@ -1,5 +1,10 @@
1
1
  # Change log
2
2
 
3
+ ## [v1.0.2] - 2020-09-07
4
+
5
+ ### Fixed
6
+ * Views now respond to window resizing with repaint
7
+
3
8
  ## [v1.0.1] - 2020-09-07
4
9
 
5
10
  ### Fixed
data/README.md CHANGED
@@ -3,12 +3,18 @@
3
3
  Companion to your editor that makes searching, and using search results for
4
4
  jumping around, super nice.
5
5
 
6
+ [![Working Set Demo](https://github.com/coderifous/working_set/blob/master/assets/video.png)](https://vimeo.com/455633260)
7
+
6
8
  ## Installation
7
9
 
8
10
  Installing the gem adds the working_set command to your path.
9
11
 
10
12
  $ gem install working_set
11
13
 
14
+ Working Set uses `ag` "the silver searcher" for super fast searching power:
15
+
16
+ $ brew install ag
17
+
12
18
  Install the plugin for your editor.
13
19
 
14
20
  * [Vim Plugin](https://github.com/coderifous/working-set.vim)
@@ -91,9 +97,13 @@ You can press '?' in working_set to see key bindings:
91
97
  * Add support for bookmarks.
92
98
  * Add support for search history.
93
99
  * Add support for customizing key bindings.
94
- * Document protocol so other plugin editors can exist.
95
100
  * Document adapter so other search tools can be used.
96
101
 
102
+ ## API for Editor Integration
103
+
104
+ Information for integrating Working Set with your editor can be found
105
+ [here](https://github.com/coderifous/working_set/blob/master/API_FOR_EDITOR_INTEGRATION.md).
106
+
97
107
  ## Development
98
108
 
99
109
  1) Fork the repo, clone the source code.
Binary file
@@ -5,7 +5,8 @@ class SetViewerActor
5
5
  subscribe "tell_selected_item", :tell_selected_item
6
6
  subscribe "copy_selected_item", :copy_selected_item
7
7
  subscribe "tell_selected_item_content", :tell_selected_item_content
8
- subscribe "set_build_finished", :refresh_view
8
+ subscribe "render_working_set", :render_working_set
9
+ subscribe "set_build_finished", :render_working_set
9
10
  subscribe "set_build_failed", :show_error
10
11
  subscribe "scroll_changed", :scroll
11
12
  subscribe "context_lines_changed", :update_context_lines
@@ -15,34 +16,17 @@ class SetViewerActor
15
16
  subscribe "select_prev_file", :select_prev_file
16
17
  subscribe "select_next_item", :select_next_item
17
18
  subscribe "select_prev_item", :select_prev_item
18
- subscribe "welcome_user", :welcome_user
19
- subscribe "display_help", :display_help
20
- subscribe "display_working_set", :display_working_set
21
- welcome_user
22
19
  end
23
20
 
24
- def welcome_user(_=nil)
25
- debug_message "displaying welcome_user!"
26
- View::WelcomeUser.render
27
- end
28
-
29
- def display_help(_)
30
- debug_message "displaying help!"
31
- View::Help.render
32
- end
33
-
34
- def display_working_set(_)
35
- debug_message "displaying working_set!"
36
- @working_set_view&.render
37
- end
38
-
39
- def refresh_view(_, working_set)
40
- prev_wsv = @working_set_view
41
- @working_set_view = View::WorkingSet.new(working_set)
42
- if prev_wsv&.working_set&.search == working_set.search
43
- @working_set_view.restore_selection_state(prev_wsv)
21
+ def render_working_set(_, working_set = nil)
22
+ if working_set
23
+ prev_wsv = @working_set_view
24
+ @working_set_view = View::WorkingSet.new(working_set)
25
+ if prev_wsv&.working_set&.search == working_set.search
26
+ @working_set_view.restore_selection_state(prev_wsv)
27
+ end
44
28
  end
45
- @working_set_view.render
29
+ publish "render_view", @working_set_view
46
30
  end
47
31
 
48
32
  def items_present?
@@ -57,6 +57,10 @@ class UserInputActor
57
57
  end
58
58
 
59
59
  def handle_modal_input(ch)
60
+ if ch == Ncurses::KEY_RESIZE # window resize
61
+ publish "window_resized"
62
+ return
63
+ end
60
64
  case user_input_mode
61
65
  when :welcome_user then handle_welcome_user_input(ch)
62
66
  when :help then handle_help_input(ch)
@@ -0,0 +1,39 @@
1
+ class ViewRouterActor
2
+ include BasicActor
3
+
4
+ def initialize
5
+ subscribe "welcome_user", :welcome_user
6
+ subscribe "display_help", :display_help
7
+ subscribe "display_working_set", :display_working_set
8
+ subscribe "window_resized", :render_current_view
9
+ subscribe "render_view", :render_view
10
+ welcome_user
11
+ end
12
+
13
+ def welcome_user(_=nil)
14
+ debug_message "displaying welcome_user!"
15
+ render_view nil, View::WelcomeUser
16
+ end
17
+
18
+ def display_help(_)
19
+ debug_message "displaying help!"
20
+ render_view nil, View::Help
21
+ end
22
+
23
+ def display_working_set(_)
24
+ debug_message "displaying working_set!"
25
+ publish "render_working_set"
26
+ end
27
+
28
+ def render_view(_, view)
29
+ @current_view = view
30
+ render_current_view
31
+ end
32
+
33
+ def render_current_view(_=nil)
34
+ debug_message "rendering view: #{@current_view.inspect}"
35
+ @current_view&.render
36
+ end
37
+
38
+ end
39
+
@@ -3,7 +3,7 @@ require 'set'
3
3
  class WorkingSet
4
4
  attr_accessor :search, :options, :items, :name, :note, :saved
5
5
 
6
- VERSION = "1.0.1"
6
+ VERSION = "1.0.2"
7
7
 
8
8
  def initialize(search = nil, options = nil, items = [])
9
9
  self.search = search
@@ -99,6 +99,7 @@ class WorkingSetCli
99
99
  end
100
100
 
101
101
  class AppSupervisor < Celluloid::Supervision::Container
102
+ supervise type: ViewRouterActor, as: :view_router
102
103
  supervise type: SetViewerActor, as: :set_viewer
103
104
  supervise type: SetBuilderActor, as: :set_builder
104
105
  supervise type: ApiInputActor, as: :api_input
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: working_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Garvin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-07 00:00:00.000000000 Z
11
+ date: 2020-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -182,6 +182,7 @@ files:
182
182
  - LICENSE.txt
183
183
  - README.md
184
184
  - Rakefile
185
+ - assets/video.png
185
186
  - bin/working_set
186
187
  - lib/api_input_actor.rb
187
188
  - lib/basic_actor.rb
@@ -196,6 +197,7 @@ files:
196
197
  - lib/view/help.rb
197
198
  - lib/view/welcome_user.rb
198
199
  - lib/view/working_set.rb
200
+ - lib/view_router_actor.rb
199
201
  - lib/working_set.rb
200
202
  - lib/working_set_cli.rb
201
203
  - lib/working_set_item.rb
@@ -219,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
221
  - !ruby/object:Gem::Version
220
222
  version: '0'
221
223
  requirements: []
222
- rubygems_version: 3.1.2
224
+ rubygems_version: 3.1.4
223
225
  signing_key:
224
226
  specification_version: 4
225
227
  summary: Companion for your terminal-based text editor.