Skip to content

v7: json schema validation finds multiple errors, better pretty-print w/ comments, regex form guesses CSV parameters, RemesPath improvements

Compare
Choose a tag to compare
@molsonkiko molsonkiko released this 10 Feb 01:14
· 11 commits to main since this release

[7.0.0] - 2024-02-09

Added

  1. PPrint-style pretty-printing that remembers comments
  2. Add and and or non-vectorized functions in RemesPath, which both use conditional excution.
  3. Add s_format vectorized RemesPath function, for easy reformatting of JSON strings.
  4. Python-style single-line comments in RemesPath
  5. A RemesPath user-defined language (UDL) file, providing some very basic syntax highlighting. It is buggy, but that is because the UDL system is inherently buggy, not because I did anything wrong (as far as I know).
  6. A : character between two key-value pairs in an object no longer causes a fatal error that makes the parser quit.
  7. Add new auto_try_guess_csv_delim_newline setting. If this is true (default false), Regex search form now makes a very basic attempt to "sniff" if the current file is CSV whenever it is opened, or when the Parse as CSV? button is toggled on.

Changed

  1. Support for multiple JSON schema validation problems
  2. All RemesPath regular expressions are now multiline, meaning that ^ and $ now match the start and end of lines respectively, rather than the start and end of the document.
  3. The ifelse vectorized function in RemesPath now uses conditional execution.
  4. Default value for sort_keys setting is now false, meaning keys are left in their original order by default. This will not change existing settings.
  5. Add optional arguments to stringify non-vectorized function in RemesPath, so that users can control the format of the output.
  6. Make dark mode icons darker.
  7. This change only affects the code base, not the public API: changed almost all snake_case variable names to camelCase. RemesPath functions still use snake_case (e.g., s_mul and group_by still have those names), and all the settings in Settings.cs (e.g., use_npp_styling) that were previously snake_case are still snake_case.
  8. Automatic linting after edits is now disabled while in selection-based mode.
  9. Automatic linting after edits will always attempt to parse the entire document, even if the user has made a selection that could be parsed as JSON.
  10. Numbers with unnecessary leading 0's (like 01 or 002.5) are now logged at the BAD level, and numbers with trailing decimal points are now logged at the JSON5 level.
  11. Error form keypress triggers now execute when the key is released, rather than when it is depressed.
  12. Automatic JSON schema validation now ignores the user's selections and always validates the entire document.

Fixed

  1. Fixed issue where vectorized functions in RemesPath were not vectorized across objects if the first argument was a function of input and at least one of the non-first arguments was also a function of input.
  2. Fixed issue where entering invalid text into comboboxes in the regex search form and grepper form could cause a (mostly harmless) plugin crash.
  3. Improved refresh and loading speed for tree viewer on very large files in regex mode.
  4. Fix issue where tree view tracking of capture groups in regex search mode was wrong in some cases involving non-ASCII characters.
  5. Hitting Escape in the error form moves focus to the editor component.
  6. When logging errors in selection-based mode, the error form now navigates to the location of the error in the overall document. Previously it navigated to the location of the error relative to the start of the selection.
  7. The regex search form no longer closes the currently active tree viewer when you focus or open it.
  8. Register forms (other than the modal AboutForm and JSON-to-CSV form) with Notepad++ using NPPM_MODELESSDIALOG. This permanently fixes the regression in Notepad++ 8.6.1 where Ctrl+X and Ctrl+C stopped working in textboxes.