WLX JSON viewer editor

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: Hacker, petermad, Stefan2, white

adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

WLX JSON viewer editor

Post by *adoeller »

https://github.com/adoeller/tc-jsontab2

Grid view, inline editor, text syntax highlighting.

JSON Tab WLX is a native Windows Lister plugin for Total Commander that displays JSON documents as a combined tree, table, and formatted text view.

Both regular JSON documents (.json) and JSON Lines documents (.jsonl) are supported. JSONL records are shown as the elements of one root array and are saved back as one compact JSON value per line.

This project is a Lazarus/Free Pascal migration of the original jsontab-wlx plugin by little-brother. The original program established the user interface, behavior, and core feature set on which this port is based.

The migration keeps the familiar workflow while adding editing, improved sorting, and better performance for large arrays.

Differences And Extensions Compared To The Original

This Lazarus/FPC version adds or substantially changes:
•Native Free Pascal implementation with a Lazarus project
•Inline scalar editing and saving
•Virtual owner-data grid for improved large-array handling
•Result-index-based filtering and sorting without rearranging JSON data
•Stable locale-aware natural sorting
•Filter transfer between compatible tree nodes using Ctrl+Shift
•Filter fields smoothly follow horizontal grid scrolling and column-width
changes

•Automatic bounded column sizing based on visible results
•Explicit current-cell display and alternating row colors
•Extended context menu and keyboard controls
•Win32 and Win64 release build modes from one project
Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

When I save after edit it use two space to indent instead of column-delimiter = \t.
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 14:24 UTC When I save after edit it use two space to indent instead of column-delimiter = \t.
column-delimiter = ; Used when copy rows. Should be one char. Default is TAB

still, there is a parsing problem for column-delimiter that is fixed in the next upload
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

fixed on github. use configured column-delimiter or TAB as default
Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

tryed but not fixed.
;column-delimiter =
column-delimiter = TAB
column-delimiter = \t
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 15:38 UTC tryed but not fixed.
;column-delimiter =
column-delimiter = TAB
column-delimiter = \t
its the char exactly after the =
no space intended

;column-delimiter works as TAB as well
Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

column-delimiter =\t
tryed also
I'm not able to do that it work.
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 15:48 UTC column-delimiter =\t
tryed also
I'm not able to do that it work.
\t are two chars. you have to enter an actual tab, e.g. copy and paste. or just comment the line
Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

actual tab, e.g. copy and paste. or just comment the line, not work here.
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 16:38 UTC actual tab, e.g. copy and paste. or just comment the line, not work here.
https://x0.at/r8iJ.png

latest version?
additional config in lsplugin.ini
Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

latest version.
when you open the json modified in notepad you see indent with spaces or tab?
I see spaces.

Code: Select all

; jsontab.ini
[jsontab]
font-size =36
header-row = 1                     ; 0/1
filter-row =1
dark-theme =1
tab-no =0
splitter-position =476

; Below params can be changed only in the ini file
font = Arial                       ;
max-file-size = 1000000            ; 1mb. Use 0 to unlimited
max-column-width = 300             ;
max-highlight-length = 64000       ;
filter-align = 0                   ; -1 - left, 0 - center, 1 - right
filter-case-sensitive = 0          ; 0/1
copy-column = 0                    ; Ctrl + C: 0 - copy a current cell, 1 - copy all cells from selected rows/current column
disable-num-keys = 0               ; 0/1, Disable/Enable 1-8 keys
disable-np-keys = 0                ; 0/1, Disable/Enable N(ext) and P(revious) keys
;column-delimiter =; Used when copy rows. Should be one char. Default is TAB
parse-mode = 0                     ; 0 - strict mode, 1 - allows multi-root only, 2 - parse any malformed data

; Colors
; Light theme
text-color = 0                     ; RGB(0, 0, 0)
back-color = 16777215              ; RGB(255, 255, 255)
back-color2 = 15790320             ; RGB(240, 240, 240)
filter-text-color = 0              ; RGB(0, 0, 0)
filter-back-color = 15790320       ; RGB(240, 240, 240)
current-cell-color = 16448020      ; RGB(20, 250, 250)
; splitter-color = <as button>
json-text-color = 0                ; RGB(0, 0, 0)
json-key-color = 8388736           ; RGB(128, 0, 128)
json-string-color = 32768          ; RGB(0, 128, 0)
json-boolean-color = 16711680      ; RGB(0, 0, 255)
json-null-color = 255              ; RGB(255, 0, 0)
current-cell-back-color = 10903622 ; RGB(70, 96, 166)

; Dark theme
text-color-dark = 14474460         ; RGB(220, 220, 220)
back-color-dark = 2105376          ; RGB(32, 32, 32)
back-color2-dark = 3421236         ; RGB(52, 52, 52)
filter-text-color-dark = 16777215  ; RGB(255, 255, 255)
filter-back-color-dark = 3947580   ; RGB(60, 60, 60)
current-cell-color-dark = 16448020 ; RGB(20, 250, 250)
; splitter-color-dark = <as button>
json-text-color-dark = 14474460    ; RGB(220, 220, 220)
json-key-color-dark = 9869055     ; RGB(200, 0, 200)
json-string-color-dark = 65280     ; RGB(0, 128, 0)
json-boolean-color-dark = 9557992  ; RGB(0, 0, 128)
json-null-color-dark = 255         ; RGB(255, 0, 0)
current-cell-back-color-dark = 4079136 ; RGB(32, 62, 62)
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 18:51 UTC latest version.
when you open the json modified in notepad you see indent with spaces or tab?
I see spaces.

Code: Select all

; Rename to jsontab.ini
[jsontab]
back-color = 16777215              ; RGB(255, 255, 255)
back-color-dark = 2105376          ; RGB(32, 32, 32)
back-color2 = 15790320             ; RGB(240, 240, 240)
back-color2-dark = 3421236         ; RGB(52, 52, 52)
copy-column = 0                    ; Ctrl + C: 0 - copy a current cell, 1 - copy all cells from selected rows/current column
current-cell-back-color = 10903622 ; RGB(70, 96, 166)
; splitter-color = <as button> 
current-cell-back-color-dark = 4079136 ; RGB(32, 62, 62)
; splitter-color-dark = <as button>
dark-theme =0
decimal-align = 1                  ; 0/1, align decimals and mixed-column integers at one anchor
disable-grid-lines = 0             ; 0/1, Disable/Enable grid lines
disable-np-keys = 0                ; 0/1, Disable/Enable N(ext) and P(revious) keys
; column-delimiter =               ; Used when copy rows. Should be one char. Default is TAB
disable-num-keys = 0               ; 0/1, Disable/Enable 1-8 keys
exit-by-q = 0                      ; Exit by Q-key
; detect-string = MULTIMEDIA & (ext="JSON" | ext="JSONL")
filter-align = 0                   ; -1 - left, 0 - center, 1 - right
filter-back-color = 15790320       ; RGB(240, 240, 240)
filter-back-color-dark = 3947580   ; RGB(60, 60, 60)
filter-case-sensitive = 0          ; 0/1
filter-row =1
filter-text-color = 0              ; RGB(0, 0, 0)
filter-text-color-dark = 16777215  ; RGB(255, 255, 255)

; Below params can be changed only in the ini file  
font = Arial                       ;
font-size =16
font-use-bold = 0                  ; 0/1, Control boldness for keys and nulls
font-weight = 0                    ; 0 - by system. Should be betwen 1 and 9
json-boolean-color = 16711680      ; RGB(0, 0, 255)
json-boolean-color-dark = 8388608  ; RGB(0, 0, 128)
json-key-color = 8388736           ; RGB(128, 0, 128)
json-key-color-dark = 13107400     ; RGB(200, 0, 200) 
json-null-color = 255              ; RGB(255, 0, 0)
json-null-color-dark = 255         ; RGB(255, 0, 0)
json-string-color = 32768          ; RGB(0, 128, 0)
json-string-color-dark = 32768     ; RGB(0, 128, 0) 
json-text-color = 0                ; RGB(0, 0, 0)
json-text-color-dark = 14474460    ; RGB(220, 220, 220)
max-column-width = 300             ;
max-file-size = 20000000           ; 20mb. Use 0 to unlimited
max-highlight-length = 64000       ;
missing-attribute-value = N/A      ; Placeholder for a missing attribute
parse-mode = 0                     ; 0 - strict mode, 1 - allows multi-root only, 2 - parse any malformed data
selection-back-color = 6956042     ; RGB(10, 36, 106)
selection-back-color-dark = 6710856    ; RGB(72, 102, 102)
selection-text-color = 16777215    ; RGB(255, 255, 255)
selection-text-color-dark = 14474460   ; RGB(220, 220, 220)
skip-attributes-scan = 0           ; 0/1, Build attributes by the first array element
splitter-position =179
tab-no =0

; Colors
; Light theme
text-color = 0                     ; RGB(0, 0, 0)

; Dark theme
text-color-dark = 14474460         ; RGB(220, 220, 220)

Hurdet
Power Member
Power Member
Posts: 787
Joined: 2003-05-10, 18:02 UTC

Re: WLX JSON viewer editor

Post by *Hurdet »

Only quote?
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

Hurdet wrote: 2026-06-20, 20:26 UTCOnly quote?
yepp
adoeller
Senior Member
Senior Member
Posts: 390
Joined: 2011-05-23, 09:47 UTC

Re: WLX JSON viewer editor

Post by *adoeller »

new version on github

tl;dr: display uniform children at same level in table/object
Image: https://x0.at/2cFU.png

•Optional FlatViewLevel: flatten object levels relative to the selected
tree node into columns (message, meta.message, and so on). For arrays, direct scalar columns are retained while nested objects are expanded (modulation_params.audio_freq). Array flattening requires a uniform schema with the same leaf paths in every row. The normal view is retained if rows differ, an intermediate level contains arrays, or objects remain below the requested depth.
Post Reply