Commit Graph

184 Commits

Author SHA1 Message Date
Jonatan Heyman
a95b043b12 Use fuzzysearch to filter notes in NoteSelector 2024-07-27 11:11:49 +02:00
Jonatan Heyman
d74499425e Sort notes in notes selector by how recent they were opened 2024-07-27 10:26:51 +02:00
Jonatan Heyman
4b39078689 WIP: Implement ability to create new notes.
Support cache of multiple Editor instances.

Change so that current note name is included in the event data dispatched by emitCursorChange.
2024-07-26 11:30:25 +02:00
Jonatan Heyman
dbf675a28a WIP: Create new node dialog
Implement folder selector UI element.
Retrieve actual folder structure from Notes library.
2024-07-25 13:25:19 +02:00
Jonatan Heyman
52ae077287 Pixel push 2024-07-25 13:22:08 +02:00
Jonatan Heyman
44aed5feb0 Better error message 2024-07-25 13:21:28 +02:00
Jonatan Heyman
03db1efd2f Place scrollbar for Language selector and Note selector within the list instead of scrolling the whole "screen" 2024-07-24 14:30:14 +02:00
Jonatan Heyman
f11f360496 WIP: Implement support for multiple notes
Refactor Vue <-> Editor <-> CodeMirror code.
Introduce Pinia store to keep global state, in order to get rid of a lot of event juggling between Editor class/child components and the root App component.
2024-07-24 13:53:44 +02:00
Jonatan Heyman
f156320601 Add a way to display error dialogs 2024-07-24 12:31:19 +02:00
Jonatan Heyman
68c741ea46 Throw error if major format version is greater than the currently supported version 2024-07-17 15:20:21 +02:00
Jonatan Heyman
86243f493d Fix race condition that could cause the editor to not scroll the cursor(s) into the viewport upon loading 2024-07-15 20:23:17 +02:00
Jonatan Heyman
2e262241c9 Add metadata to the beginning of the serialized buffer.
Store the cursors' positions in the buffer metadata and restore the cursors when loading the buffer content.
2024-07-15 10:45:25 +02:00
Jonatan Heyman
8626dcc141 Fix error on startup when cursor is moved to the end of a large buffer (caused by the syntaxTree not being parsed in time) 2024-07-14 14:51:15 +02:00
Jonatan Heyman
6363422585
Merge branch 'main' into support-dart-syntax
Signed-off-by: Jonatan Heyman <jonatan@heyman.info>
2024-07-14 12:51:14 +02:00
Jonatan Heyman
6ec20ee873 Guesslang does not support Vue 2024-07-14 12:45:35 +02:00
JongwooLee
c870a48a7e build grammar 2024-07-14 12:45:35 +02:00
JongwooLee
f9c841d19e add vue language support 2024-07-14 12:45:35 +02:00
Jonatan Heyman
0aaf62925f Add test for custom default block language 2024-07-14 12:19:29 +02:00
Jonatan Heyman
d82b3920d7 Add setting for configuring the default block language and language auto detection 2024-07-14 12:19:29 +02:00
Jonatan Heyman
f33be7f3a4 Fix bug causing editing to break when there are empty blocks of a language that uses a StreamParser 2024-07-11 14:46:20 +02:00
Cris
e8971a6733 Add default redo cmd that works on all Platforms. Mod+Shift+Z 2024-07-08 22:58:18 +02:00
Jonatan Heyman
bc3a9b66a1 Add test that ensures that getBlocksFromSyntaxTree() and getBlocksFromString() functions produces the same results 2024-07-07 22:05:33 +02:00
Jonatan Heyman
016422e7db Update imports so that that they also work in playwright tests 2024-07-07 22:05:33 +02:00
Jonatan Heyman
9bcf03d00c Typo 2024-07-07 22:05:33 +02:00
Jonatan Heyman
c3892163af Remove timeout parameter for getBlocksFromSyntaxTree() since we now expect the syntax tree to already be available. 2024-07-07 22:05:33 +02:00
Jonatan Heyman
29d4eb26cc Optimize block parsing when syntax tree isn't available.
If the syntax tree isn't available, use String.indexOf to parse the blocks.
2024-07-07 22:05:33 +02:00
Donghee Lee
d943fc8015 Support Dart Syntax 2024-06-12 07:47:45 +02:00
Jonatan Heyman
2f22951e9f Add "Always on top" setting which makes Heynote stay on top of other programs 2024-02-09 16:07:27 +01:00
Jonatan Heyman
d591d7ddb1 Add PowerShell language mode 2024-02-09 16:02:07 +01:00
Jonatan Heyman
9e3fc5e8e6 Add Diff language mode 2024-02-09 16:02:07 +01:00
Abhishek Maran
5eed314e32
fix: Block corruption when deleting block content using deleteLine command (#134)
* fix: cell corruption when deleting block contents

* customize deleteLine to fix cell corruption

* implemented tests for delete line

* moved deleteLine and selectedLineBlocks to delete-line.js
2024-02-07 13:03:59 +01:00
Jonatan Heyman
f9673b0954 Use explicit key bindings for copy/paste/cut, instead of just relying on default browser keys 2024-01-29 13:20:21 +01:00
Jonatan Heyman
41d9ef7025
Copy whole current line(s) when selection(s) are empty (#177)
* Copy whole current line(s) when selection(s) are empty

* Fix tests on Linux/Windows
2024-01-25 17:44:38 +01:00
Jonatan Heyman
295e55552b Add version number to settings dialog.
For the web app we also display the git hash.
2024-01-12 15:09:13 +01:00
Jonatan Heyman
37b62d416e Move window.heynote.isWebApp to window.heynote.platform.isWebApp 2024-01-12 14:42:37 +01:00
Jonatan Heyman
e292fab449 Always show settings button in status bar (not just in web app) 2024-01-12 14:42:37 +01:00
Jonatan Heyman
5adbbc72ec
Add prev variable to Math blocks that holds the previous value (#156)
Moved documentation on Math blocks from the FAQ into it's own section in the Readme.
2024-01-11 21:28:11 +01:00
Jonatan Heyman
66e7082786 Set default font size to 16px in webapp for mobile devices in order to avoid auto zoom in when the keyboard appears on iOS Safari 2024-01-11 21:05:15 +01:00
Jonatan Heyman
c645b0bac8 Avoid zoom in on input focus, in the webapp on mobile devices
Set LanguageSelector's input font-size to 16px on mobile devices.

Add SASS mixins "webapp" and "webapp-mobile" to write specific CSS for those clients.
2024-01-11 21:05:15 +01:00
Jonatan Heyman
54e390eeec Set text color for language selector's input in dark mode
(in Electron it has a good default since the native UI gets it's theme set, but this does not happen in a browser where the user selects the dark theme)
2024-01-11 21:05:15 +01:00
Jonatan Heyman
922aa83a10 Fix "white flash" effect when resizing window in dark mode
* Fix so that the background color of the page gets properly set according to the current theme.

* Change so that we add the theme attribute to the <html> element instead of <body>, making it possible to use the +dark-mode SASS mixin in body CSS selectors

* Introduce CSS variables for the status bar's background and text colors
2024-01-11 16:58:21 +01:00
Jonatan Heyman
e1287d795e Remove AltGr from global hotkey setting on Windows
Did not work. On windows pressing Ctrl+Alt is the same as AltGr, so setting the hotkey to Ctrl+Alt+H will make the hotkey AltGr+H work.
2024-01-09 00:45:53 +01:00
Jonatan Heyman
f0927add74 Fix broken Settings dialog in browsers that doesn't support queryLocalFonts() 2024-01-09 00:35:33 +01:00
Jonatan Heyman
780a949a73 Fix so that Settings dialog work when browser doesn't support queryLocalFonts() 2024-01-09 00:35:33 +01:00
Jonatan Heyman
09539f9cd8 Remove invalid code (copy & paste error) 2024-01-09 00:35:33 +01:00
Jonatan Heyman
a56a267e06 Add support for changing font family and font size 2024-01-09 00:35:33 +01:00
Jonatan Heyman
2a2703d6d3 Check showInMenu checkbox when showInDock is deselected 2024-01-06 03:11:15 +01:00
Jonatan Heyman
46b2ee0522 Use correct OS terminology for Tray in settings label 2024-01-06 03:11:15 +01:00
Jonatan Heyman
554e04ea67 Fix test on linux/windows
Change Playwright reporter when running in Github action

Change default emacs meta key to Alt on non Linux and Windows

Always set emacsMetaKey to "alt" if not on Mac, since the option is only available on Mac
2024-01-06 01:51:07 +01:00
Jonatan Heyman
957b22c70e Refactor the way we handle copy/cut/paste in Emacs mode
Previously we listened for the key bindings for copy, cut and paste in the Electron main process, and triggered the event using copy(), paste() and cut() methods on win.webContent. Now this is fully handled within the renderer process using the window.navigator.clipboard API.

This will make it simpler to implement fully customizable key bindings.
2024-01-06 01:51:07 +01:00