github notable/notable-insiders v1.9.0-alpha.20

latest releases: v1.9.0-beta.9, v1.9.0-beta.8, v1.9.0-beta.7...
3 years ago
  • Updated electron
  • Added a workaround that ensured updated CSS actually gets updated quickly during development
  • Floating elements: avoiding using fullscreen modals, improved spacing, fixed an issue regarding blurred text on non-hi-dpi displays
  • Fixed many minor alignment issues
  • Palette: avoiding displaying the default shortcut hint for the current item when custom shortcut hints are provided
  • New React hook: useEvent
  • Ensuring popovers are repositioned when resizable layouts are resized
  • Changelogs: reversed history order
  • New commands: changelog.first, changelog.last
  • Mapped Ctrl+Home/Ctrl+End to changelog.first/changelog.last
  • New context key: isConfigurationEditorOpen
  • New commands: configurationEditor.next, configurationEditor.previous
  • New commands: configurationEditor.first, configurationEditor.last
  • Mapped Ctrl+Tab/Ctrl+Shift+Tab to configurationEditor.next/configurationEditor.previous
  • Mapped Ctrl+Home/Ctrl+End to configurationEditor.first/configurationEditor.last
  • New commands: standaloneEditor.first, standaloneEditor.last, standaloneEditor.previous, standaloneEditor.next
  • Mapped Ctrl+Tab/Ctrl+Shift+Tab to standaloneEditor.next/standaloneEditor.previous
  • Mapped Ctrl+Home/Ctrl+End to standaloneEditor.first/standaloneEditor.last
  • Mapped Alt to view.menubar.enable rather than view.menubar.toggle
  • New React hook: useMount
  • New React hook: useUnmount
  • Ensuring state is kept in sync when modals or popovers are removed from the DOM at the React level
  • New context keys: hasDialog, hasNotification, hasPopover
  • New commands: dialog.close, modal.close, notification.close, popover.close
  • Wired the “Esc” shortcut used for closing dialogs/modals/popovers/notifications with the main shortcuts system
  • Added a context menu for the custom titlebar
  • Added a context menu for the statusbar
  • Making portable builds for Windows again
  • Updated some dependencies
  • Detecting focus change events more reliably
  • Switch focus back to the editor when appropriate
  • New commands: note.attachment.embed, note.attachment.link
  • note.attachment.add command: added support for passing attachments paths directly, and to embed or link them directly once imported too
  • Optimized throttling scalability in chokidar, especially when dealing with large number of files
  • Fixed a bug when attempting to detect TLDs in URLs with single-letter subdomains
  • Implemented a rough diff algorithm that’s often absurdly fast
  • Slightly optimized Markdown segmentation
  • Added an incremental Markdown tokenizer
  • Added a “medium” note length threshold at 25kb
  • Implemented an incremental indentation provider for the editor that’s about twice as fast most of the time
  • Disabled the default link detector in Markdown editors
  • Improved Markdown link detection: accounting for IP addresses, localhost URLs, URLs with a port specified and “notable://“ URLs
  • Improved editor link detection: accounting for IP addresses, localhost URLs, URLs with a port specified, URLs with a fragment, URLs with query parameters, special placeholders, and potentially valid URLs contained in actually invalid URLs
  • Implemented a potential fix for those “loading chunk X failed” errors
  • Updated some dependencies
  • Incremental tokenizer: detecting diffs more precisely
  • Incremental tokenizer: added support for using a custom env object
  • Caching DOM nodes that didn’t change when rendering arbitrary HTML
  • Caching DOM nodes that didn’t change more aggressively when rendering arbitrary HTML
  • Implemented an incremental Markdown tokens renderer
  • Tokenizing and rendering regular Markdown documents incrementally
  • Incremental tokenizer: handling many edge cases that caused the wrong tokens to be returned
  • Incremental tokenizer: bailing out of it when environment data might be in use
  • <markdown> tag: ensuring heading IDs used in parent scopes are taken into account
  • <markdown> tag: ensuring its usage doesn’t make the app bail out from incremental tokenization and rendering of the top-level document
  • Slugifier: properly accounting for <markdown> tags, resetting the cache at the right time
  • <markdown> tag: using a references cache that’s shared between all rendering scopes of the document
  • <markdown> tag: ensuring it is detected properly when using inline and at the start of a line
  • <markdown> tag: ensuring empty tags are handled properly
  • HTML component: avoiding making DOM elements for useless empty paragraphs
  • Significantly improved the reliability of line mappings under many complex scenarios
  • Outputting accurate line mapping in many additional cases
  • Ensuring commands executed in a macro are executed in the right order and don’t overlap with each other
  • HTML component: avoiding making new DOM elements when only their line mapping changed
  • New command: sleep
  • Minor changes
  • Pasting the selected emoji or language picked from its respective palette to the editor only if the editor is already visible
  • Updated KaTeX assets, ensuring expressiona re rendered correctly
  • Added a potential workaround for the issue that causes weird characters to be printed to PDF under macOS Catalina
  • Ensuring sidebar tags are proparly sorted
  • Updated shortcuts font, using monospaced digits
  • Partial tokenizer: handling a couple of other edge cases
  • Ensuring the button for opening mermaid or PlantUML diagrams in the browser are rendered
  • Replaced react-window with react-virtuoso
  • Updated some dependencies
  • Simplified some types used alongside React
  • New React hook: useStateRef
  • Ensuring spacers can’t be shrunk in size
  • New React hook: useOverflowObserver
  • Overflow observer: added a “tail” strategy
  • Proper handling of overflowing buttons in the mainbar toolbar
  • Menu: improved activation/deactivation states styling, accounting for icons
  • Lowered some minimum-allowed widths
  • Ensuring popovers are positioned reasonably in zen mode when the custom titlebar is being used
  • Providing on-hover toolbar and statusbar in zen mode
  • Added a dedicated button to the toolbar for toggling split mode
  • New React hook: useUpdatingRef
  • Overflow observer: reacting to dynamic changes in the DOM too
  • New React component: Noop
  • Overflow observer: improved detection of dynamic changes
  • Overflow observer: accounting for padding in the parent
  • Overflow observer: implemented an “ends” strategy
  • Implemented a, currently disabled, statusbar overflower
  • Fetch: ensuring the response gets parsed only for 2xx HTTP codes
  • Editor: ensuring long lines always have a bit of padding to the right when word wrapping is disabled
  • Improved heading detection reliability for the first heading in some scenarios
  • Ensuring popovers opened from the overflow menu are positioned reasonably
  • Ensuring the "empty" item in trees are properly marked as the first and last items in the tree
  • Ensuring only one app title is displayed in the custom titlebar at any given time
  • Minor changes
  • Added a "Languages" library
  • Added support for moving logic into web workers easily
  • Added the "un-UN" (Unsupported) language
  • Languages: simplified name of the "Setswana / Tswana" language
  • Added a "Language" library
  • Added a function for string language detection, accounting for the user’s system preferences too
  • Added a "Spell Checker" library
  • New commands: spellChecker.enable, spellChecker.disable, spellChecker.toggle
  • New context key: isSpellCheckerEnabled
  • Added a basic statusbar item for toggling the spell checker
  • New setting: spellChecker.enabled
  • New command: link.releases.experimental
  • Added a "Dictionary" library for fetching and caching language dictionaries
  • Bundling the available English dictionaries with the app
  • Added a simple "format" function
  • Using the new "format" function throughout the codebase
  • New setting: plantuml.endpoint
  • New setting: spellChecker.dictionary.endpoint
  • Minor changes
  • Added support for generating a words frequency list
  • Added a "numbers" sorter
  • Words frequency: ensuring words are sorted, quickly
  • Words: added APIs for showing words frequencies in a quick pick
  • New command: note.words.count
  • New command: note.words.frequency
  • Words statusbar item: opening up the words frequency quick pick on click
  • Added some convenience methods for managing markers in Monaco
  • Implemented a simple "memoize" function
  • Implemented a simple spell checker interface that abstracts over nspell
  • Dictionary: significantly improved retrival performance for unsupported languages
  • Implemented some basic spell-checking primitives
  • New theming colors: colors⚠️*
  • New settings for changing the words in dictionaries: spellChecker.dictionary.include, spellChecker.dictionary.exclude
  • Spell checker: implemented a function for finding incorrect words in a whole string
  • Fixed a few bugs in the generation of some complex emojis
  • Defined a regex for matching raw emojis
  • Natural sorting: accounting for all present emojis when sorting
  • Wrapping generated emojis in a custom HTML element, fixing a few rendering bugs on macOS
  • Markdown: added a, currently disable, plugin for wrapping raw emojis in the custom HTML element too
  • Improved words detection, especially in languages with non-latin alphabets
  • Language inferring: added support for picking the inferred language only within a set of probable languages
  • Editor markers: added support for quickly checking if an editor has any markers
  • Editor markers: added support for retrieving markers with updated ranges due to edits
  • Spell checker: added support for detecting incorrect words up to a limit
  • Added support for spell-checking note editors
  • Editor spell checker: refreshing on mount/blur/change
  • Editor spell checking: fixed a bug causing 0-length markers to not get cleaned up
  • Editor spell checking: ensuring the editor to spell check didn’t get unmounted while spell checking
  • Levelshtein distance: added a sort function
  • Markdown: ensuring line breaks in paragraphs are not rendered as break elements
  • Spell checker: sorting suggestions by edit distance
  • Ensuring strings like "Something Bar" are always spelled as "Somethingbar", for consistency
  • Ensuring that if a renderer process crash its associated window is closed automatically too
  • Levenshtein sorter: added support for providing an iterator function
  • Spell checking: sorting suggestions case insensitively
  • New commands: spellChecker.dictionary.include, spellChecker.dictionary.exclude
  • Added a "Word" library
  • New command: editor.spelling.replace
  • Editor: implemented many convenience API, to be used for spell checking
  • Input context menu: ensuring Monaco’s tiny textarea doesn’t trigger the general context menu for inputs and textareas
  • Editor context menu: added the expected items for spell checking
  • Editor spell checker context menu: updated items order
  • Disabled "look up" and "search with Google" menu items in editors context menus until they both can be implemented properly
  • Added some basic APIs for implementing autocomplete(-ish) experiences in editors
  • New commands: editor.autocomplete, editor.autocomplete.spelling
  • New shortcut: Ctrl+Space -> editor.autocomplete
  • New shortcut: Ctrl+. -> editor.autocomplete.spelling
  • Language: added quick pick APIs for picking a language
  • New commands: spellChecker.dictionary.set, spellChecker.dictionary.setAuto
  • Spell checker: preserving manually set dictionary for each note across restarts
  • Spell checker: ensuring it’s refreshed whenever something changes
  • Spell checker: ensuring dictionaries are initialized with the configured inclusion and exclusion lists
  • Spell checker: efficiently updating the dictionary when include/exclude lists change, when possible, rather then rebuilding the entire thing
  • Spell checker: ensuring the "Learn Spelling" item is provided even if there are no suggestions available
  • Spell checker: ensuring all visible editors get refreshed when the settings change
  • New commands: spellChecker.word.first, spellChecker.word.last, spellChecker.word.previous, spellChecker.word.next
  • New shortcuts: F9/Shift+F9 -> spellChecker.word.next/spellChecker.word.previous
  • Editor: ensuring it gets focused too when setting new cursors
  • Editor: added some APIs related to selections
  • New command: editor.selection.words
  • note.words.frequency command: selecting all occurrences of the picked word in the editor
  • New command: spellChecker.words.frequency
  • Minor changes
  • Spell checker: providing much more info to the user via the statusbar item, both using the icon and the tooltip
  • New shortcut: F8 -> spellChecker.toggle
  • Implemented a context menu for the spell checker statusbar item
  • Spell checker: greatly reduced the number of false positives, skipping checks of words inside code blocks, urls, and other common false positives scenarios
  • Spell-checked theming notes
  • Spell checker: ignoring HTML entities
  • Spell checker: included ~200 extra technical words in the built-in dictionaries
  • Updated some internal notes
  • Markdown: reduced the amount of time spent parsing by the custom syntax plugins by ~50% in most cases
  • Markdown: reverted previous change regarding breaking paragraphs as it had some unforeseen breaking changes
  • Spell checker: ensuring only the diff is re-evaluated also when no mispellings are found
  • Spell checker: ensuring the entire document is still taken into consideration when performing spell checking on diffs
  • Editor: ensuring new selections are scrolled to automatically if they are all outside the viewport
  • Diff: ensuring calculated offsets don’t overlap with each other
  • Ensuring the app can be resized vertically from all parts of the top edge of the titlebar (Windows)
  • Markdown shield: ensuring rendered block elements aren’t wrapped again in a paragraph
  • Details tag: ensuring it has no extra margin at the bottom if it’s the last rendered element
  • Updated some dependencies
  • New programming languages: Dart, Terraform HCL, Julia, Lexon, Scala, SystemVerilog, Verilog
  • Editor: ensuring it has consistent top and bottom padding applied to it
  • Spell checker: added a few more words to the built-in dictionary
  • Markdown: providing accurate line mappings for HTML blocks too
  • Markdown: ensuring line mappings are provided for table rows too
  • Markdown: updating the raw Markdown too when toggling a <details> element
  • Markdown shield: ensuring the added padding doesn’t break any potential html_block token
  • New autocomplete providers: emoji, programming language, quick link note/attachment/command/heading/search/tag
  • New commands: editor.autocomplete.emoji, editor.autocomplete.language, editor.autocomplete.quickLink
  • Minor changes
  • Monaco: added a "Marker" lib
  • Editor: registering metadata for some kind-of supported languages with no syntax highlighting yet available
  • New context key: hasEditorSelectionAnchor
  • New theming color: editor⚓background
  • New commands: editor.selection.anchor, editor.selection.anchor.set, editor.selection.anchor.clear
  • New shortcu: Esc -> editor.selection.anchor.clear
  • New private command: editor.native
  • New commands: editor.transform.lowercase, editor.transform.titlecase, editor.transform.uppercase
  • New command: editor.go.selection.anchor
  • New command: editor.link.open
  • New commands: editor.sort.ascending, editor.sort.descending
  • New command: editor.cursor.redo
  • New shortcut: CmdOrCtrl+Shift+U -> editor.cursor.redo
  • New command: editor.copy.selection.right
  • New commands: editor.insert.cursors.up, editor.insert.cursors.down
  • New shortcut: Ctrl+Enter -> editor.link.open (macOS)
  • New shortcut: Ctrl+Alt+Enter -> editor.link.open (Windows & Linux)
  • Markdown: ensuring tasks in loose lists are rendered properly
  • Added a markdown table formatter library
  • New commands: editor.table.format.all, editor.table.format.current
  • New shortcut: CtrlOrCmd+Alt+Shift+C -> editor.table.format.current
  • New shortcut: CtrlOrCmd+Alt+Shift+A -> editor.table.format.all
  • New commands: editor.heading.increase, editor.heading.decrease
  • New shortcut: CmdOrCtrl+Shift+[ -> editor.heading.decrease
  • New shortcut: CmdOrCtrl+Shift+] -> editor.heading.increase
  • New commands: editor.formatting.bold.add, editor.formatting.bold.remove, editor.formatting.bold.toggle, editor.formatting.italic.add, editor.formatting.italic.remove, editor.formatting.italic.toggle, editor.formatting.strikethrough.add, editor.formatting.strikethrough.remove, editor.formatting.strikethrough.toggle
  • New shortcut: CmdOrCtrl+B -> editor.formatting.bold.toggle
  • New shortcut: CmdOrCtrl+I -> editor.formatting.italic.toggle
  • Spell checking: stopping providing general autocomplete and context menu contributions when disabled
  • New command: editor.heading.set
  • New command: editor.pasteAsLink
  • Tasks: improved support for toggling all tasks in a selection
  • Autocomplete: added a file system provider for quick links
  • Shortcut: added quick pick APIs
  • Autocomplete: added a provider for regular links
  • Autocomplete: added a provider for reference links
  • Autocomplete: added a provider for scheme urls
  • Markdown: implemented some convenience functions for extracting the environmen out of markdown strings
  • Autocomplete: added a provider for links references
  • Autocomplete: added a provider for footnotes references
  • Editor: added a "Formatting" submenu to the context menu
  • Minor changes
  • Added a "File" library
  • New commands: file.copy, file.copyPath, file.open, file.reveal
  • Added a context menu for raw files
  • Added a "file" palette
  • HTMLCached: ensuring malformed HTML doesn’t crash the component
  • Markdown: improved code block detection, accounting for non-closed ones too
  • New command: crash.report
  • Preview: added an error boundary, ensuring that if the preview crashes for whatever reason it doesn’t take the whole app with it
  • Added basic autocomplete support to tags inputs
  • New React component: IconProgressPie
  • New React component: IconProgressCircle
  • Ensuring dynamic icons inherit the color being used
  • Added a function for retrieving tasks statistics from a note
  • New sort dimension: tasks
  • Added a dynamic pie-style progress bar icon in the notes list when the sorting dimension is "tasks"
  • New command: note.tag.rename
  • Added a "Rename" context menu item from note tags
  • New command: tag.delete
  • Added a "Delete" context menu item for regular sidebar tags
  • New command: tag.rename
  • Added a "Rename" context menu item for regular sidebar tags
  • Added a "DataTransfer" library
  • New React hook: useDefaultEventHandler
  • New React hook: useDropTarget
  • New decorator class: drop-target-dropping
  • Note: added suppor for handling drop events
  • Added support for dropping files to note previews
  • New class decorator: drop-pseudo-target-dropping
  • Added support for dropping files to note editors
  • New command: focus.reset
  • New context key: isEscapableEditableFocused
  • New shortcut: Esc -> focus.reset
  • New React hook: useInputEditable
  • Tags popover: added support for renaming tags directly on Alt+Click
  • List: improved styling of embedded inputs
  • Sidebar: added support for renaming tags directly on Alt+Click
  • New note metadata field: title_custom, which remembers whether the note’s title has been set manually, and should therefor not be changed automatically, or not
  • New command: note.rename
  • Middlebar: Sidebar: added support for renaming notes directly on Alt+Click
  • Drag and drop: implemented some simple, general and flexible primitives
  • Iconography: made some tweaks, added some new icons
  • Iconography: added a test note listing all icons
  • Implemented some convenience functions for generating links to all supported resources in any supported format
  • Quick link: improved detection of embedded regular links
  • Fixed some minor pluralization issues
  • New commands: editor.duplicate.lines.delete, editor.duplicate.lines.deleteNonBlanks
  • Links: defaulting to "markdown.special" rather than "markdown.regular" as the default "markdown" format
  • Drag and drop: added back support for dropping files into note editors/previews using the new primitives
  • Drag and drop: notes in the middlebar are now draggable sources
  • Drag and drop: the tabbar is now a droppable target
  • Drag and drop: sidebar tags are now droppable targets
  • Drag and drop: the search bar is now a droppable target
  • Drag and drop: tabs are now droppable targets
  • Drag and drop: renamed some droppable targets
  • Drag and drop: middlebar notes are now droppable targets
  • Drag and drop: dragging a single note or all selected notes from the sidebar depending on if the dragged note is selected or not
  • Drag and drop: tags in the sidebar are now draggable sources
  • Drag and drop: tags in the tags editor popover are now draggable sources
  • Drag and drop: attachments in the attachments editor popover are now draggable sources
  • Drag and drop: made draggables provide their titles as their "text/plain" contribution
  • Drag and drop: exclusing current draggables as valid droppable targets
  • Drag and drop: tabs are now droppable targets
  • Drag and drop: inferring which draggables each droppable can handle automatically
  • Drag and drop: added a "noop" draggable
  • New icon: heading
  • Drag and drop: attachments/headings/notes/tabs/tags/commands/searches from quick picks are now draggable sources
  • Drag and drop: added support for linking or embedding (with Alt) an attachment by dropping it into a note editor
  • Drag and drop: added support for linking an heading by dropping it into a note editor
  • Drag and drop: added support for linking a note by dropping it into a note editor
  • Drag and drop: added support for linking a tag by dropping it into a note editor
  • Drag and drop: added support for linking a command by dropping it into a note editor
  • Drag and drop: added support for linking a search by dropping it into a note editor
  • Drag and drop: added support for linking multiple tags by dropping them into a note editor
  • Drag and drop: added support for linking multiple notes by dropping them into a note editor
  • Drag and drop: added support for opening a note in a tab by dropping it into the tabbar
  • Drag and drop: added support for opening multiple notes in tabs by dropping them into the tabbar
  • Tabs: storing the tabs order more reliably, with an array, without relying on the insertion order of object properties
  • Drag and drop: added support for reordering tabs by dragging one onto another one
  • Settings: ensuring errors thrown during serialization or serialization can’t crash the app
  • Note: added support for toggling some special tags too
  • Drag and drop: added support for toggling a tag for a note by dropping the note into the tag
  • Drag and drop: added support for toggling a tag for multiple notes by dropping the notes into the tag
  • Drag and drop: added support for toggling an attachment for a note by dropping the attachment into the note
  • Drag and drop: added support for toggling a tag for a note by dropping the tag into the note
  • Drag and drop: added support for toggling multiple tags for a note by dropping the tags into the note
  • Improved rendering of editable list items
  • Drag and drop: ensuring the droppable overlay doesn’t interfere with the visibility of children
  • Spell checking: reduced required initialization time by ~40%
  • Minor changes
  • Tasks: ensuring more correct statistics are detected for notes
  • Added a caching mechanism for arbitrary note-level data
  • Caching tasks statistics for improved performance
  • Ensuring renaming a tag takes care of all of its children too, recursively
  • Webpack: removed unused DLL bundle
  • Webpack: using esbuild wherever possible
  • Updated some dependencies
  • Monaco: improved known languages registration
  • Electron: ensuring the main process process bundle doesn’t contain any heavy dependencies
  • Ensuring Monaco is not included directly in the renderer process bundle
  • Editor: ensuring the JSON language is loaded only when needed
  • Shrinked context keys’ parser by ~75%
  • Removed "string-matches-generator" dependency
  • Removed "string-matches" dependency
  • Removed "is-fullwidth-code-point" dependency
  • Replaced "fast-levenshtein" with "fastest-levenshtein"
  • Removed "resize-observer-polyfill" dependency
  • Removed "markdown-table" dependency
  • Settings: replaced some heavy dependencies with lighter alternatives
  • Reimplemented the subset of lodash that we need in a much lighter library, nanodash
  • Replaced "lodash", "debounce" and some redundant helper functions with "nanodash"
  • Added a "typescript:check" script
  • Updated some dependencies
  • Optimized tags tree mutations, bringing the time required to build it for 50k notes down from ~110s to ~60ms
  • UUID: reduced length from 32 to 24
  • Optimized natural sorting significantly
  • Optimized proxy traps checks away from search
  • Optimized chokidar configuration for a large number of files
  • Optimized reading of a large number of files significantly
  • Optimized handling of a large number of changed paths in the state management library
  • Optimized YAML parsing for files without a frontmatter section
  • Removed some unused dependencies from the dependency graph
  • nanodash: added a "cloneJSON" method
  • Moved the YAML compiler to a web worker
  • Moved file system watching to a web worker
  • Tasker: removed some useless wrapper functions and promises
  • Optimizied startup time when loading lots of notes significantly
  • Further optimizied YAML parsing for notes without a frontmatter section
  • Generating randomness ~twice as fast
  • nanodash: sligtly optimized some methods when dealing with empty arrays
  • Fetching stats objects slightly more efficiently
  • Quick pick: ensuring search is run once rather than twice some times
  • Search: ensuring it is run once rather than twice sometimes
  • Bypassing proxy traps in some strategic places, improving performance
  • Minor changes
  • New nanodash methods: camelCase, pascalCase
  • New package: css-rule-parser
  • New package: reac-css2style
  • New package: react-attributes2props
  • New React hook: useCache
  • Removed "html-react-parser" in favor of some custom React components
  • Updated some dependencies
  • Minor changes
  • Slightly optimized tags tree generation
  • Ensuring localStorage and sessionStorage aren’t used anywhere, making the app start quickly when other versions of it are open too
  • New command: window.show
  • Showing new windows in a more strategic way, trying to optimize for quick feedback and reduced flickers
  • Markdown: highlighting dividers in a more spec-compliant way
  • Export: ensuring the content in the editor is taken into account when exporting notes to Markdown
  • New export mode: Markdown (No Metadata), making it easier for people to move to something else if they want to :(
  • Ensuring uncollapsible tags are not shown as being collapsed
  • Added support for collapsing tags with a middle-click
  • Markdown: ensuring HTML entities are detected and stripped away properly
  • Shortcuts screencaster: ensuring buggy keyup events from autocomplete aren’t taken into consideration
  • Editor: ensuring folding icons are replaced properly
  • Added a trivial "Logger" library
  • Tasker: reverted some of the previous changes for the sake of cleaness
  • Replaced actual enums with const object literals, since enums are implemented weirdly in TypeScript
  • Updated some dependencies
  • New script: lint:report
  • Addressed many linting issues
  • Updated linter configuration
  • nanodash: added "flattenDepth"
  • Addressed most TypeScript issues
  • New nanodash methods: entries, has, includes, keys, isFalsy, isTruthy
  • Removed many type assertions
  • Minor changes
  • Improved error handling: centralized, wired with telemetry, handling more potential errors, showing more details when possible, showing errors in a more friendly way when possible
  • Removed many implicit anys
  • nanodash: more closely matching the behavior of lodash’s throttle method
  • Ensuring tabs are serialized properly
  • Ensuring the global "edit" menu has a "Formatting" submenu too
  • Ensuring "Esc" or "Shift+Esc" clears single selections in editors
  • Removed "Esc Esc" in favor of a single "Esc" for exiting focus mode or zen mode
  • Light theme: inverted background colors for tabs
  • nanodash: rewritten throttle and debounce to much more closely match lodash’s counterparts
  • Updated usage of throttling and debouncing throuout the codebase
  • Ensuring graphviz/dot diagrams have an "open in app" button too
  • String.getMatches: ensuring all matches are returned, no matter what the initial lastIndex was
  • Editor: ensuring models are not disposed before using them
  • Ensuring restoring selections doesn’t throw errors if the wrong ranges are set
  • Ensuring no native dependencies are used
  • Replaced "chokidar", "chokidar-watcher" and "calls-batch" with "nsfw"
  • Removed "react-property" dependency
  • "command" URLs: added support for separating arguments by slashes instead, for convenience
  • Preview: removed an unnecessary renderer occurring when saving the note
  • HTMLCached: ensuring no sparse arrays are created
  • Minor changes
  • Markdown: ensuring cached tokens are cloned as the array could get mutated
  • Preview: ensuring segments are not re-rendered if they didn’t change
  • Tree: scrolling to the last item more reliably
  • Word: generalized some functions to allow for custom word regexes
  • Formatting: ensuring all simple formatting wrappers can be toggled easily
  • Formatting: ensuring trailing hashes are updated too when change a heading’s level
  • Markdown: ensuring abiguous not-really-relative paths are supported too for linking to other notes or attachments
  • Updated some dependencies
  • Updated skeleton
  • Commands: exposing "contextKey.set"
  • Waiting for the database to finish loading before handling "notable://" urls
  • Schema urls: ensuring they are handled even if the app is not open when triggering them
  • Schema urls: ensuring they are handled even if the app is open but without any windows open when triggering them
  • Ensuring opening the "About" window doesn’t cause the app to crash on exit
  • Added an error dialog for when a path to a data directory to switch to has not been provided
  • CWD: ensuring paths are normalized before adding or removing them from the recents map
  • Avoiding mutating the database’s documents maps directly
  • New package: "event-emitter"
  • Minor changes
  • Database: added an event system
  • Database: added a simple "Revision" backend
  • Database: duplicating documents and files more efficiently
  • New package: event-emitter-batched
  • Database: batching events
  • Database: batching all events happening during initialization
  • event-emitter-batched: ensuring events can also be emitted synchronously manually
  • New database events: init, reset
  • New database events: init:before, init:after
  • event-emitter-batched: ensuring synchronous events aren’t paused
  • Ensuring large arrays/maps/sets are mutated efficiently too
  • Ensuring the tags tree is updated efficiently
  • Ensuring notes get pruned for root groups properly
  • Avoiding using the Date global directly, or at all in some cases
  • Generating effimeral files and documents more cleanly
  • Database: keeping track of creation and modification dates for attachments too
  • Fetch: added a "status" function
  • Attachment: added some convenience functions for fetching creation and moficiation date
  • Refreshing rendered attachments as soon as a change is detected
  • Ensuring attachments are renamed automatically when they are renamed on disk
  • attachment.rename command: ensuring it allows for renaming attachments directly from within the app
  • Ensuring attachments listed in the popover can be renamed on Alt+Click too
  • Ensuring a "Rename" action is available in context menus for notes too
  • Ensuring intermediate filesystem change events are ignored when the document in memory is likely ahead of that already
  • Quick pick: ensuring inserted dynamic items don’t conflict with existing items
  • Ensuring the changelog is opened automatically when needed
  • Ensuring manually editing notes titles directly from the metadata section sets the "title_custom" flag automatically
  • Ensuring that if loading a native dependency fails the error is handled gracefully
  • New command: export.markdownRaw
  • Ensuring "export.*" commands can accept an array of notes to export too
  • Ensuring all "export.*" commands list all supported arguments
  • Clipboard: added support for fetching copied filepaths directly
  • Added support for copy/pasting arbitrary files in note editors (macOS) (Windows)
  • Settings Synchronizer: avoiding some race conditions when setting multiple settings at once
  • Updated some dependencies
  • Ensuring all icons are rendered properly across all systems (no even-odd usage)
  • Added support for definition lists
  • Ensuring native dependencies work correctly under all tested environments
  • Minor changes
  • Replaced "nsfw" with "watcher"
  • New nanodash methods: castError, isBuffer

Don't miss a new notable-insiders release

NewReleases is sending notifications on new releases.