working_set 1.0.1 → 1.0.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 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.