hyperlist 1.0.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.
data/hyperlist.gemspec ADDED
@@ -0,0 +1,36 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "hyperlist"
3
+ spec.version = "1.0.0"
4
+ spec.authors = ["Geir Isene"]
5
+ spec.email = ["g@isene.com"]
6
+
7
+ spec.summary = "A powerful Terminal User Interface for HyperList management"
8
+ spec.description = "HyperList is a Ruby TUI application for creating, editing, and managing hierarchical lists using the HyperList methodology. It features rich syntax highlighting, advanced folding, powerful navigation, full editing capabilities, checkbox support, and multiple export formats."
9
+ spec.homepage = "https://github.com/isene/HyperList"
10
+ spec.license = "Unlicense"
11
+ spec.required_ruby_version = ">= 3.0.0"
12
+
13
+ spec.metadata["homepage_uri"] = spec.homepage
14
+ spec.metadata["source_code_uri"] = "https://github.com/isene/HyperList"
15
+ spec.metadata["documentation_uri"] = "https://isene.org/hyperlist/"
16
+ spec.metadata["changelog_uri"] = "https://github.com/isene/HyperList/blob/main/CHANGELOG.md"
17
+
18
+ # Specify which files should be added to the gem when it is released.
19
+ spec.files = Dir.chdir(__dir__) do
20
+ `git ls-files -z`.split("\x0").reject do |f|
21
+ (File.expand_path(f) == __FILE__) ||
22
+ f.start_with?(*%w[test/ spec/ features/ .git .github .gitignore])
23
+ end
24
+ end
25
+
26
+ spec.bindir = "."
27
+ spec.executables = ["hyperlist"]
28
+ spec.require_paths = ["."]
29
+
30
+ # Runtime dependencies
31
+ spec.add_runtime_dependency "rcurses", "~> 5.1"
32
+
33
+ # Development dependencies
34
+ spec.add_development_dependency "minitest", "~> 5.0"
35
+ spec.add_development_dependency "rake", "~> 13.0"
36
+ end
data/sample.hl ADDED
@@ -0,0 +1,83 @@
1
+ HyperList Sample Document
2
+ Project Management #project
3
+ [ ] Planning Phase
4
+ [X] Define objectives
5
+ [X] Identify stakeholders
6
+ [O] Create timeline
7
+ [ ] Budget estimation
8
+ Research costs
9
+ Get quotes from vendors
10
+ [3] Review with finance team
11
+ Implementation
12
+ Development Tasks
13
+ [ ] Backend API
14
+ Authentication module
15
+ Database schema
16
+ REST endpoints
17
+ [ ] Frontend UI
18
+ Login page
19
+ Dashboard
20
+ Reports section
21
+ Testing
22
+ Unit tests
23
+ Integration tests
24
+ User acceptance testing
25
+ Documentation
26
+ Technical documentation
27
+ User manual
28
+ Training materials
29
+ Personal Tasks #personal
30
+ [X] Morning routine
31
+ [X] Exercise
32
+ [X] Breakfast
33
+ [X] Review calendar
34
+ [x] 2025-08-11 13.30: Review meeting notes
35
+ [ ] Shopping list
36
+ [5 liters] Milk
37
+ [2 packages] Butter
38
+ Vegetables
39
+ Tomatoes
40
+ Lettuce
41
+ Carrots
42
+ Learning goals
43
+ *Master* Ruby programming
44
+ Study /design patterns/
45
+ Practice _algorithms_
46
+ References and Links
47
+ <file:~/Documents/specs.pdf>
48
+ <https://example.com/documentation>
49
+ See also: <Project Management>
50
+ Previous version: <-10>
51
+ Complex Examples
52
+ 2025-08-11 11.51: Meeting notes
53
+ State: System initialized
54
+ Transition: User login -> Dashboard
55
+ [2..5] Retry attempts allowed
56
+ [?] Optional configuration
57
+ ; This is a comment
58
+ Setting A = value1
59
+ Setting B = value2
60
+ Examples with parentheses and quotes
61
+ Meeting (scheduled for 2pm)
62
+ Task "Review documentation" (high priority)
63
+ Note: 'This is important' (see reference)
64
+ Conditional examples with operators
65
+ AND: Complete all tests AND: Deploy to production
66
+ OR: Use Docker OR: Use Kubernetes
67
+ IF: Tests pass THEN: Deploy automatically
68
+ NOT: Include debug logs
69
+ WHEN: User logged in THEN: Show dashboard
70
+ UNLESS: Admin privileges THEN: Deny access
71
+ Multi-level nesting example
72
+ Level 1
73
+ Level 2
74
+ Level 3
75
+ Level 4
76
+ Level 5
77
+ Deep nesting test
78
+ Markdown-style formatting
79
+ *Bold text example*
80
+ /Italic text example/
81
+ _Underlined text example_
82
+ Combined: *bold and /italic/ together*
83
+ Hash tags: #important #urgent #review
Binary file
Binary file
data/test.hl ADDED
@@ -0,0 +1,169 @@
1
+ HyperList Ruby TUI Test Suite v1.0
2
+ About This Test Suite
3
+ Purpose: Test all features of the HyperList Ruby TUI application
4
+ Run with: ./hyperlist test.hl
5
+ Navigate through and test each feature systematically
6
+
7
+ SYNTAX HIGHLIGHTING & COLORS
8
+ Check: Property in red; Dates like 2025-08-12 should be red
9
+ AND: OR: IF: THEN: Operators should appear in blue
10
+ [?] Conditional checkboxes should be green
11
+ #hashtags should appear in yellow/orange
12
+ <references> should appear in magenta
13
+ (parentheses content) should be in cyan
14
+ "quoted strings" should be in bright cyan
15
+ *bold text* should appear bold
16
+ /italic text/ should appear italic
17
+ _underlined text_ should appear underlined
18
+ ; Comments should be in cyan
19
+ Templates with = markers for filling
20
+
21
+ NAVIGATION TESTS
22
+ Basic Movement
23
+ j/↓ Move down through items
24
+ k/↑ Move up through items
25
+ h Go to parent item (move cursor here and press h)
26
+ l Go to first child (press l from parent)
27
+ g/Home Go to top of document
28
+ G/End Go to bottom of document
29
+ PgUp/PgDn Page up and down
30
+ Search
31
+ / Search for text (try searching for "test")
32
+ n Jump to next search match
33
+ Marks and Jumps
34
+ ma Set mark 'a' at current position
35
+ 'a Jump back to mark 'a'
36
+ '' Jump to previous position
37
+ R Jump to reference (place cursor on <NAVIGATION TESTS> and press R)
38
+ Template Navigation
39
+ First template =
40
+ Second template =
41
+ Third template =
42
+ Press N to jump to next template marker and edit
43
+
44
+ FOLDING TESTS
45
+ Space Toggle fold on this item
46
+ This child should hide/show when parent is folded
47
+ And this grandchild too
48
+ Even deeper nesting works
49
+ za Toggle all folds recursively
50
+ zo Open fold / zc Close fold
51
+ zR Open all folds / zM Close all folds
52
+ 1-9 Expand to specific level (try pressing 2)
53
+ Level 2 item
54
+ Level 3 item
55
+ Level 4 item
56
+ Level 5 item
57
+ 0 Multi-digit fold level (press 0 then 1 then 2 for level 12)
58
+
59
+ EDITING TESTS
60
+ Basic Editing
61
+ i/Enter Edit current line
62
+ o Insert new line below
63
+ O Insert new line above
64
+ a Insert child item
65
+ Delete Operations
66
+ D Delete and yank current line only
67
+ C-D Delete and yank item with all descendants
68
+ Copy/Paste
69
+ y Copy current line only
70
+ Y Copy item with descendants
71
+ p Paste yanked content
72
+ Undo/Redo
73
+ u Undo last change
74
+ r/C-R Redo undone change
75
+ . Repeat last action
76
+ Moving Items
77
+ S-UP/S-DOWN Move single item up/down
78
+ C-UP/C-DOWN Move item with descendants up/down
79
+ Indentation
80
+ Tab Indent item and children
81
+ S-Tab Unindent item and children
82
+ → Indent item only
83
+ ← Unindent item only
84
+
85
+ CHECKBOX TESTS
86
+ [ ] Press v to add/toggle checkbox
87
+ [X] Completed checkbox (green)
88
+ [O] In progress checkbox (bright green bold)
89
+ [-] Partial checkbox (dim green)
90
+ [?] Conditional checkbox (green)
91
+ [3] Numbered checkbox
92
+ [2025-08-12 14:30] Date checkbox
93
+ Press V to toggle with timestamp
94
+
95
+ SPECIAL FEATURES
96
+ Presentation Mode
97
+ Press P to enter presentation mode
98
+ Current item and ancestors shown, rest hidden
99
+ Press P again to exit
100
+ Underline Toggle
101
+ \u Toggle underlining of state/transition items
102
+ S: State items (descriptive)
103
+ T: Transition items (actions)
104
+ File Operations
105
+ F Open file reference (place cursor on file path)
106
+ <sample.hl> Try opening this reference with F
107
+
108
+ FILE COMMANDS
109
+ :w Save file
110
+ :q Quit (asks to save if modified)
111
+ :wq Save and quit
112
+ Q Force quit without saving
113
+ :e filename Open another file
114
+ :recent Show recent files
115
+ :export md Export to Markdown
116
+ :export html Export to HTML
117
+ :export txt Export to plain text
118
+ :graph Generate PNG graph visualization
119
+ :vsplit Split view vertically
120
+ ww Switch between split panes
121
+ :as on Enable autosave
122
+ :as off Disable autosave
123
+ :as 30 Set autosave interval to 30 seconds
124
+
125
+ ADVANCED TESTS
126
+ Complex Nesting
127
+ Parent 1
128
+ Child 1.1
129
+ Grandchild 1.1.1
130
+ Great-grandchild 1.1.1.1
131
+ Great-great-grandchild 1.1.1.1.1
132
+ Child 1.2
133
+ Grandchild 1.2.1
134
+ Grandchild 1.2.2
135
+ Parent 2
136
+ Child 2.1
137
+ Child 2.2
138
+
139
+ Mixed Formatting
140
+ Item with *bold* and /italic/ and _underline_
141
+ Item with #multiple #hash #tags
142
+ Item with <reference> and (parentheses) and "quotes"
143
+ AND: Operator with [X] checkbox and 2025-08-12: date
144
+
145
+ Long Lines
146
+ This is a very long line that should wrap properly in the terminal display and maintain proper indentation when it continues on the next visual line without breaking the hierarchical structure of the HyperList
147
+
148
+ Special Characters
149
+ Item with special chars: @#$%^&*(){}[]|\\:;"'<>,.?/
150
+ Unicode: ★ ☆ ♠ ♣ ♥ ♦ → ← ↑ ↓
151
+ Emojis: 😀 🎉 ✓ ✗ ⚠️ 📝
152
+
153
+ HELP SYSTEM
154
+ ? Show help screen with key bindings
155
+ ?? Show full documentation
156
+ Use UP/DOWN to scroll through help
157
+ Press any other key to exit help
158
+
159
+ TEST COMPLETION
160
+ [ ] All syntax highlighting verified
161
+ [ ] All navigation features tested
162
+ [ ] All folding operations work
163
+ [ ] All editing functions tested
164
+ [ ] Checkboxes functioning correctly
165
+ [ ] Special features operational
166
+ [ ] File commands working
167
+ [ ] Help system accessible
168
+
169
+ If all tests pass, the Ruby HyperList TUI is working correctly!
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hyperlist
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Geir Isene
8
+ autorequire:
9
+ bindir: "."
10
+ cert_chain: []
11
+ date: 2025-08-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rcurses
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
55
+ description: HyperList is a Ruby TUI application for creating, editing, and managing
56
+ hierarchical lists using the HyperList methodology. It features rich syntax highlighting,
57
+ advanced folding, powerful navigation, full editing capabilities, checkbox support,
58
+ and multiple export formats.
59
+ email:
60
+ - g@isene.com
61
+ executables:
62
+ - hyperlist
63
+ extensions: []
64
+ extra_rdoc_files: []
65
+ files:
66
+ - "./hyperlist"
67
+ - CHANGELOG.md
68
+ - LICENSE
69
+ - README.md
70
+ - hyperlist
71
+ - hyperlist.gemspec
72
+ - sample.hl
73
+ - screenshot_help.png
74
+ - screenshot_sample.png
75
+ - test.hl
76
+ homepage: https://github.com/isene/HyperList
77
+ licenses:
78
+ - Unlicense
79
+ metadata:
80
+ homepage_uri: https://github.com/isene/HyperList
81
+ source_code_uri: https://github.com/isene/HyperList
82
+ documentation_uri: https://isene.org/hyperlist/
83
+ changelog_uri: https://github.com/isene/HyperList/blob/main/CHANGELOG.md
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - "."
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 3.0.0
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubygems_version: 3.4.20
100
+ signing_key:
101
+ specification_version: 4
102
+ summary: A powerful Terminal User Interface for HyperList management
103
+ test_files: []