Skip to content

Commit c57910e

Browse files
committed
Release JsonTools v8.4
1 parent d45a7e5 commit c57910e

10 files changed

Lines changed: 75 additions & 67 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Change Log
2-
All [notable changes](#831---2024-12-22) to this project will be documented in this file.
2+
All [notable changes](#840---2025-05-04) to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
@@ -36,6 +36,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
3636

3737
### To Be Fixed
3838

39+
- Consider adding bounds checks for integer addition and subtraction in RemesPath, and coercing any results to doubles if they would cause 64-bit int overflow.
3940
- Make sure there aren't any easily-triggered race conditions induced by [automatic parsing and validation after editing](/docs/README.md#automatically-check-for-errors-after-editing).
4041
- In 6.1.1.18, there is no longer a global shared JsonParser, which was the main potential source of race conditions.
4142
- Fix issue where pretty-printing or compressing causes tree view position tracking to be out of sync with the document until a query is issued or the `Refresh` button is hit.
@@ -48,7 +49,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
4849
- Since v7.0, holding down `Enter` in a multiline textbox (like the [tree viewer query box](/docs/README.md#remespath)) only adds one newline when the key is lifted.
4950
- Maybe use pre-7.1 (dictionary-based rather than indicator-based) [selection remembering](/docs/README.md#working-with-selections) for Notepad++ 8.5.5 and earlier? Indicators are risky with those older NPP's because of the lack of `NPPM_ALLOCATEINDICATOR`.
5051

51-
## [8.4.0] - (UNRELEASED) YYYY-MM-DD
52+
## [8.4.0] - 2025-05-04
5253

5354
### Added
5455

JsonToolsNppPlugin/JSONTools/RemesPathFunctions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ public JNode Call(JNode left, JNode right)
8484
// }
8585
//}
8686

87+
// TODO: Consider adding bounds checks for integer addition and subtraction, and coercing any results to doubles if they would cause 64-bit int overflow
88+
8789
public static JNode Add(JNode a, JNode b)
8890
{
8991
object aval = a.value; object bval = b.value;

JsonToolsNppPlugin/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
[assembly: AssemblyConfiguration("")]
1010
[assembly: AssemblyCompany("Mark Johnston Olson")]
1111
[assembly: AssemblyProduct("JSON tools plugin for Notepad++")]
12-
[assembly: AssemblyCopyright("Copyright © molsonkiko 2022-2024")]
12+
[assembly: AssemblyCopyright("Copyright © molsonkiko 2022-2025")]
1313
[assembly: AssemblyTrademark("")]
1414
[assembly: AssemblyCulture("")]
1515

@@ -28,5 +28,5 @@
2828
// Build Number
2929
// Revision
3030
//
31-
[assembly: AssemblyVersion("8.3.1.5")]
32-
[assembly: AssemblyFileVersion("8.3.1.5")]
31+
[assembly: AssemblyVersion("8.4.0.0")]
32+
[assembly: AssemblyFileVersion("8.4.0.0")]

JsonToolsNppPlugin/Release_x64.zip

94.4 KB
Binary file not shown.

JsonToolsNppPlugin/Release_x86.zip

94.2 KB
Binary file not shown.

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
same "printed page" as the copyright notice for easier
188188
identification within third-party archives.
189189

190-
Copyright 2022-2023 Mark Johnston Olson
190+
Copyright 2022-2025 Mark Johnston Olson
191191

192192
Licensed under the Apache License, Version 2.0 (the "License");
193193
you may not use this file except in compliance with the License.

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,13 @@ Currently JsonTools has been translated into the following languages:
161161
| Language | First version with translation | Translator(s) | Translator is native speaker? |
162162
|----------|--------------------------------|---------------|--------------------------------|
163163
| [Italian](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/italian.json5) | [v8.0](/CHANGELOG.md#800---2024-06-29) | [conky77](https://github.com/conky77), [molsonkiko](https://github.com/molsonkiko) (only for `messageBoxes` and `fileComments` sections) | Only conky77 |
164-
| [Arabic](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/arabic.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
165-
| [Chinese (simplified)](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/chineseSimplified.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
166-
| [French](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/french.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
167-
| [German](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/german.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
168-
| [Japanese](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/japanese.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
169-
| [Korean](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/korean.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
170-
| [Taiwanese Mandarin](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/taiwaneseMandarin.json5) | [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd) | [hydy100](https://github.com/hydy100) | Yes |
164+
| [Arabic](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/arabic.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
165+
| [Chinese (simplified)](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/chineseSimplified.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
166+
| [French](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/french.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
167+
| [German](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/german.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
168+
| [Japanese](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/japanese.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
169+
| [Korean](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/korean.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
170+
| [Taiwanese Mandarin](https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/translation/taiwaneseMandarin.json5) | [v8.4](/CHANGELOG.md#840---2025-05-04) | [hydy100](https://github.com/hydy100) | Yes |
171171

172172

173173
The following aspects of JsonTools __can__ be translated:

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ __NOTES__
7171
5. Beginning in [v4.4.0](/CHANGELOG.md#440---2022-11-23), you can have multiple tree views open.
7272
6. Beginning in [v8.1](/CHANGELOG.md#810---2024-08-23), JsonTools will refuse to perform plugin commands on files with more than 2147483647 bytes. This is the same size restriction that 32-bit Notepad++ has for opening files.
7373
- Prior to that release, JsonTools would cause Notepad++ to __crash__ if you attempted to execute plugin commands on files that large.
74-
7. Beginning in [v8.4](/CHANGELOG.md#840---unreleased-yyyy-mm-dd), you can use the `keyboard_shortcuts` setting to turn on/off all of the default keyboard shortcuts for JsonTools plugin commands.
74+
7. Beginning in [v8.4](/CHANGELOG.md#840---2025-05-04), you can use the `keyboard_shortcuts` setting to turn on/off all of the default keyboard shortcuts for JsonTools plugin commands.
7575
- Once `keyboard_shortcuts` is set to `False`, you can use the [Shortcut Mapper](https://npp-user-manual.org/docs/preferences/#shortcut-mapper) (`Macro->Modify Shortcut/Delete Macro...` from the Notepad++ main menu) to reassign keyboard shortcuts for any JsonTools plugin commands.
7676

7777
If a node has a `+` or `-` sign next to it, you can click on that button to expand the children of the node, as shown here.

docs/RemesPath.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ Starting in [5.4.0](/CHANGELOG.md#540---2023-07-04), the unary `+` operator has
115115

116116
The `not` operator introduced in [5.4.0](/CHANGELOG.md#540---2023-07-04) (which replaced [the older function of the same name](#vectorized-functions)) is very similar to the Python operator of the same name, in that `not x` returns `False` if x is ["truthy" (see below)](#truthiness), and `True` if x is "falsy".
117117

118+
### WARNING about arithmetic with integers ###
119+
120+
Since JsonTools stores integers as 64-bit integers, overflow and underflow are possible when doing arithmetic. For example, `int(4e18)*3` incorrectly returns `-6446744073709551616` because the true result would be greater than `2**63 - 1`, the largest 64-bit integer. Use caution when doing arithmetic on very large integers.
121+
118122
### Truthiness ###
119123

120124
Similar to in JavaScript and Python, RemesPath has the concept of "truthiness" (and its opposite, "falsiness"), where in some cases a non-boolean is treated as a boolean.

0 commit comments

Comments
 (0)