hyperlist 1.7.0 → 1.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 014e81876165c457903e5f20e8f848f2c59fce0d2672e700ff909873c03c260a
4
- data.tar.gz: c60b73c642984f70ba2bfdcceb7ca6a9bc501c46071cb362d9e9343778cd8f40
3
+ metadata.gz: 54c0ace316afeb7e7d109bb319f279c76dd849e098683ded98ccf5c33c68ffbc
4
+ data.tar.gz: 06ceebfd8bb666689dbef44939074d4a1aaa7a78fe4c12858a977550b2d38391
5
5
  SHA512:
6
- metadata.gz: 37ba0da349a30af46424cc374ece24e315c32a22ee48bf81f4893c43e20cdf18f42ec71c3b3fe123688f9b97597a29e8aa583884cceb361d44583645546aaf25
7
- data.tar.gz: 5a8737705ad4d231e6ce1a8a1b8f440cf8b0f3c2ffa7586052dc64be5a55d8bc4491ed721b07adb192e6674f0560a9ac35a6a067ed27831b200066b786456081
6
+ metadata.gz: d8e284b9201f5d2f7598c55473936569a99071312a2ab0735cdeae70737b8c47998a5d02cf29dbb2b38ffb1c65d851e49cf19809d514150a5b4764d9e1c4c8ba
7
+ data.tar.gz: 5b3e22980a16e467d0308ffd7e5912db3738dda7bde1c74e1a0fe871b8ca2d8e3cb21f782e8edb6a1af4fcf75d917731807fc00c7d4e9f83af0d57316892d19c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to the HyperList Ruby TUI will be documented in this file.
4
4
 
5
+ ## [1.8.0] - 2025-09-22
6
+
7
+ ### Enhanced
8
+ - **Guaranteed item visibility after all movement operations**
9
+ - Current item now ALWAYS remains visible after TAB/S-TAB indentation operations
10
+ - Added visibility enforcement to `indent_right()` and `indent_left()` functions
11
+ - Added visibility enforcement to split-view indentation operations
12
+ - Prevents items from becoming invisible when moved under collapsed parents
13
+ - Complements existing visibility protection for C-UP/C-DOWN movements
14
+
5
15
  ## [1.7.0] - 2025-09-18
6
16
 
7
17
  ### Added
data/hyperlist CHANGED
@@ -1674,6 +1674,10 @@ class HyperListApp
1674
1674
  end
1675
1675
  end
1676
1676
 
1677
+ # Ensure the moved item remains visible (find its index in main items array)
1678
+ main_real_idx = @items.index(item)
1679
+ force_item_visible(main_real_idx) if main_real_idx
1680
+
1677
1681
  @modified = true
1678
1682
  @message = "Indented in split pane"
1679
1683
  end
@@ -1702,6 +1706,10 @@ class HyperListApp
1702
1706
  end
1703
1707
  end
1704
1708
 
1709
+ # Ensure the moved item remains visible (find its index in main items array)
1710
+ main_real_idx = @items.index(item)
1711
+ force_item_visible(main_real_idx) if main_real_idx
1712
+
1705
1713
  @modified = true
1706
1714
  @message = "Unindented in split pane"
1707
1715
  end
@@ -2918,6 +2926,9 @@ class HyperListApp
2918
2926
  end
2919
2927
  end
2920
2928
 
2929
+ # Ensure the moved item remains visible
2930
+ force_item_visible(real_idx)
2931
+
2921
2932
  @modified = true
2922
2933
  record_last_action(:indent_right, with_children)
2923
2934
  end
@@ -2946,6 +2957,9 @@ class HyperListApp
2946
2957
  end
2947
2958
  end
2948
2959
 
2960
+ # Ensure the moved item remains visible
2961
+ force_item_visible(real_idx)
2962
+
2949
2963
  @modified = true
2950
2964
  record_last_action(:indent_left, with_children)
2951
2965
  end
data/hyperlist.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "hyperlist"
3
- spec.version = "1.7.0"
3
+ spec.version = "1.8.0"
4
4
  spec.authors = ["Geir Isene"]
5
5
  spec.email = ["g@isene.com"]
6
6
 
@@ -0,0 +1,11 @@
1
+ Top level item 1
2
+ Child 1.1
3
+ Grandchild 1.1.1
4
+ Grandchild 1.1.2
5
+ Child 1.2
6
+ Grandchild 1.2.1
7
+ Top level item 2
8
+ Child 2.1
9
+ Grandchild 2.1.1
10
+ Child 2.2
11
+ Top level item 3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperlist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
@@ -79,7 +79,7 @@ files:
79
79
  - img/screenshot_help.png
80
80
  - img/screenshot_sample.png
81
81
  - sample.hl
82
- - test_resize.hl
82
+ - test_visibility.hl
83
83
  homepage: https://github.com/isene/HyperList
84
84
  licenses:
85
85
  - Unlicense
data/test_resize.hl DELETED
@@ -1,16 +0,0 @@
1
- Test HyperList for Terminal Resize
2
- This is a test file
3
- To verify terminal resize works
4
- When you resize the terminal
5
- The display should update correctly
6
- Items to check:
7
- Main content area adjusts
8
- Footer stays at bottom
9
- Split view (if active) rebalances
10
- No visual corruption
11
- Test scenarios:
12
- Make terminal wider
13
- Make terminal narrower
14
- Make terminal taller
15
- Make terminal shorter
16
- Quick multiple resizes