Luke Wilson
3bf5e6dfd7
Implemented anchors for rope buffer
2021-04-13 11:05:01 -05:00
Luke Wilson
8d775804cb
Reimplement simple selection
2021-04-12 18:57:59 -05:00
Luke Wilson
b0ca65a613
Fix not applying cursor operation
2021-04-12 17:48:00 -05:00
Luke Wilson
d96c2f6f03
Refactored cursor architecture into buffer module
2021-04-12 17:38:29 -05:00
Luke Wilson
59856c5e41
Panel: change reference to Focused -> focused
2021-04-12 10:53:25 -05:00
Luke I. Wilson
e0079bbdb5
Panel: inherit from baseComponent struct
2021-04-08 18:39:06 -05:00
Luke I. Wilson
70e32e0b5c
Merge branch 'panels'
2021-04-08 13:05:13 -05:00
Luke I. Wilson
8346c52167
Added baseComponent to ui to save boilerplate lines
2021-04-08 12:41:24 -05:00
Luke I. Wilson
2e128e5b36
Remove temporary comments from main.go
2021-04-08 11:11:09 -05:00
Luke I. Wilson
14ba338de9
PanelContainer: bug fix on destroying a panel
...
This commit fixes a bug where destroying a Panel with a parent of
kind PanelKindSplit... causes the selected to become that split
panel, instead of a child. Now, it chooses the leftmost child of
that parent panel.
2021-04-07 23:03:20 -05:00
Luke I. Wilson
5df772e568
TextEdit: only hide cursor when unfocused
2021-04-07 22:05:58 -05:00
Luke I. Wilson
8142bb2de5
Autofocus new panels
2021-04-07 21:51:18 -05:00
Luke I. Wilson
baafcf3d5c
TextEdit: Colorscheme "Column" style + changed column appearance
2021-04-07 21:45:38 -05:00
Luke I. Wilson
cdeb3be359
TabContainer & Theme fixes to better show focused state of TabContainer and MenuBar
2021-04-07 21:06:36 -05:00
Luke I. Wilson
eb17dfec2e
Transfer focus to panelContainer on some Menu callbacks
2021-04-07 19:55:11 -05:00
Luke I. Wilson
e7e459b16f
PanelContainer: code cleanup
2021-04-07 14:55:20 -05:00
Luke I. Wilson
56b89c6079
PanelContainer: Implement cycling selection
2021-04-07 13:56:32 -05:00
Luke I. Wilson
459087e6d8
PanelContainer: removed multiple comments
2021-04-06 14:35:55 -05:00
Luke I. Wilson
389276ee34
PanelContainer: Bug fixes and integration
2021-04-06 11:14:17 -05:00
Luke I. Wilson
c40be89564
PanelContainer: Floating Panels, but not quite?
2021-04-06 10:06:02 -05:00
Luke I. Wilson
95e4db4d3e
PanelContainer: SwapNeighborsSelected() to split left and split top
2021-04-05 17:31:16 -05:00
Luke I. Wilson
cf5803c464
Splitting Panels
2021-04-05 17:15:57 -05:00
Luke I. Wilson
eb8142ea8e
PanelContainer: SetFocus and HandleEvent properly
2021-04-05 17:03:52 -05:00
Luke I. Wilson
25b416da3d
Injected new PanelContainer into mainloop to replace TabContainer
2021-04-05 16:55:16 -05:00
Luke I. Wilson
03c8c3bcad
Created Panel and PanelContainer untested code
2021-04-05 16:22:40 -05:00
Luke I. Wilson
0918afc483
Fixed not setting TextEdit's FilePath field in Save As function
2021-04-05 10:30:51 -05:00
Luke I. Wilson
ccb096a3f6
Add GotoLineDialog and Search->Go to line functionality
2021-04-04 20:00:47 -05:00
Luke I. Wilson
3982628653
Ran go fmt *.go
on all sources
2021-04-04 13:15:31 -05:00
Luke I. Wilson
e115855491
TextEdit highlighting: update lang definition
2021-04-04 11:09:34 -05:00
Luke I. Wilson
0c44bd0312
Fix nil ptr bug
...
Something weird was happening with keeping a global interface
tcell.Screen. Instead, decided to keep a global pointer to interface
*tcell.Screen. I suspect the Go compiler did not see that screen
was supposed to escape to the heap, and so it was kept as a main()
function-scope variable.
2021-04-04 10:34:55 -05:00
Luke I. Wilson
ca68b8d7fa
TextEdit: naive fix to rendering selection around hard tabs
2021-04-04 09:36:56 -05:00
Luke I. Wilson
0e0f4b9339
Replaced background style
2021-04-04 08:33:42 -05:00
Luke I. Wilson
28e9af70eb
InputField: replace buffer with byte buffer and update appearance
2021-04-04 08:30:09 -05:00
Luke I. Wilson
1b50aff0c6
Main: fix cut selection deleting selection before copying.
2021-04-02 15:05:59 -05:00
Luke I. Wilson
d1dd389dba
Main: more robust error handling.
...
Previously, the editor would panic at any error. After I recently
implemented dialogs, I changed all panics to create error dialogs,
instead. This will make the editor more stable.
2021-04-02 14:30:38 -05:00
Luke I. Wilson
f64af6fa29
DrawStr: made more efficient and renders newline characters
...
Before, DrawStr would copy all bytes into a []rune slice, and later
copy the rune slice (by accident) in the for i, v := range loop. Now,
it uses a []byte slice and iterates with for i := range slice.
2021-04-02 13:30:37 -05:00
Luke I. Wilson
9192d35b3c
Implement Save As and have Save redirect to Save As when the file is unnamed
2021-04-01 21:07:28 -05:00
Luke I. Wilson
7ce5096952
Add menu entries to Search menu
2021-04-01 20:42:22 -05:00
Luke I. Wilson
0dcdd62773
UI: removed WindowContainer, and replaced it with DrawWindow function
2021-04-01 20:34:18 -05:00
Luke I. Wilson
a4d5f3ccf4
Highlighter: fix bug causing out of bounds access when endLine > len of internal lines
2021-04-01 16:19:14 -05:00
Luke I. Wilson
239793aa2c
Rope test: add case for TestRopeSlice
2021-04-01 16:16:47 -05:00
Luke I. Wilson
25f5262b6a
Rope: fix bug in Slice() causing out-of-bounds access
2021-04-01 16:14:39 -05:00
Luke I. Wilson
2cd41fc62d
TextEdit: update highlighting for .go files, make strings lazy match
2021-04-01 14:40:38 -05:00
Luke I. Wilson
58c8de3068
Rope: Added LineColToPos, and optimized Highlighter's UpdateLines()
2021-04-01 14:16:51 -05:00
Luke I. Wilson
f829b37d0c
TextEdit & Highlighting: performance improvements & changes to architecture
...
I ran pprof to find what was causing stuttering, and found it to be the
getTabCountInLineAtCol function in TextEdit, because it was iterating
many bytes of the buffer, for each rune rendered. Replaced it with a more
optimal system. Also changed the architecture of the highlighting system
to use a single RegexpRange structure for all regular expressions. This
allows for optimizations and multiline matches in the future.
2021-04-01 12:05:17 -05:00
Luke I. Wilson
37589144b5
TextEdit: Add syntax highlighting for Go files
2021-03-30 23:00:32 -05:00
Luke I. Wilson
aaf377ccd5
TextEdit: account for tab offsets when highlighting
2021-03-30 22:21:56 -05:00
Luke I. Wilson
de921419ce
Rope buffer tests: remove unnecessary 't.Fail()` everywhere
2021-03-30 22:17:41 -05:00
Luke I. Wilson
cdf10cdd3c
Merge branch 'main' of github.com:fivemoreminix/qedit
2021-03-30 22:14:54 -05:00
Luke I. Wilson
a79227e97c
Rope buffer: Fix bug in PosToLineCol and add test case
2021-03-30 22:14:02 -05:00