Skip to content

jekyll2014/JsonDictionary

Repository files navigation

JsonDictionary

MetaUI source processor to ease samples search

It's intended to ease sample search in .json files. As Kinetic manuals are poor for now there are many cases we need to search through the existing projects to find the example. The tool collects database of the fields and values of the project .jsonc files so one can search the needed parameter/keyword in the tree to find usage sample.

English Short manual:

  1. Push "Collect database" button to show root folder of the MetaUI repository. It'll search all files marked before to parse. A tree and a examples table is generated. It may take a couple of minutes.
  2. Database collected can be saved (binary serializer format) with "Save database" button to avoid regenerating it next time. There are 2 files saved - .metalib database and .metalib.tree tree.
  3. "Samples tree" contains a tree to select keywerd needed and dsiplay samples with double-click on a tree element.
  4. Examples table can be filtered by schema version (got from "contentVersion" field) and a search phrase. Filter is applied to a current grid view so filters can be applied sequentially. Filtering can be slow on huge amount of data so may take some time.
  5. Filters applied are shown in the text field below the grid.
  6. Version filter always reset grid content on new value applied. Be aware the string filters will be reset.
  7. To reset the filtering double-click on the tree item again to clear the search textbox and press Enter. Version filter set to "Any" does the same.
  8. Double click on grid cell text opens it for editing (to select/copy string needed). Changes won't be saved.
  9. Use Readjust button to adjust grid rows height (70% of grid control height) if needed (will be reset to auto-height on next grid refill).
  10. Single column height can be auto-adjusted with double-click on row header as well.
  11. Following actions works in tree:
    • double-click - show examples for the selected node in the grid
    • Delete - delete node
    • Ctrl-C - copy node name to clipboard
  12. Following shotcuts works in description:
    • double-click - edit the description text
    • Ctrl-Enter - save text
  13. Following shotcuts works in grid:
    • double-click - open file in editor
  14. Descriptions edited are saved to file on program close.

Tech. notes:

  • Only the first file name for every unique example is displayed in grid by default (otherwise there'll be hundreds of files for some fields). Can be switched by "Collect all fileNames" setting.
  • UI critical controls are inactive on long operations.
  • It's possible to re-format json-queries to place starting brackets ("[,{") on the next line (I personally prefer this way). Works on database creation time. Can be enabled by "Reformat JSON" setting.

==== Russian Êðàòêàÿ èíñòðóêöèÿ:

  1. Êíîïêîé "Collect database" óêàçûâàåì êîðíåâóþ ïàïêó ñ JSONC ôàéëàìè. Ïî "Îê" ïðîãðàììà èùåò âñå *.jsonc ôàéëû è ïàðñèò èõ, âûãðåáàÿ êëþ÷åâûå ñëîâà. Ñòðîèòñÿ äåðåâî è ê íåìó áèáëèîòåêà çíà÷åíèé (ïðèìåðîâ). Ýòî ìîæåò çàíÿòü íåìàëî âðåìåíè (30 ìèíóò íà ïîëíûé êîìïëåêò).
  2. Ñîáðàííóþ áàçó ìîæíî ñîõðàíèòü (â ôîðìàòå binary serializer), ÷òîáû íå ãåíåðèòü îïÿòü ïî "Save database". Ñîõðàíÿþòñÿ 2 ôàéëà - .kineticLib ñ áàçîé ïðèìåðîâ è .kineticLib.tree ñ äåðåâîì.
  3. Âî âêëàäêå "Schema tree" ìîæíî â äåðåâå âûáðàòü èíòåðåñóþùåå êëþ÷åâîå ñëîâî è ïî äâîéíîìó êëèêó íà íåì ñïðàâà â ãðèäå ïîÿâèòñÿ òàáëè÷êà ñ íàéäåííûìè íà íåãî ïðèìåðàìè.
  4. Òàáëè÷êó ìîæíî îòôèëüòðîâàòü ôèëüòðàìè ñâåðõó - ïî âåðñèè (èç ïîëÿ "contentVersion") è ïî êëþ÷åâîé ôðàçå. Ôèëüòð íàêëàäûâàåòñÿ ïðè íàæàòèè ENTER â òåêñòîâîì ïîëå. Ôèëüòðóåòñÿ òåêóùåå ñîäåðæèìîå ãðèäà, òàê ÷òî ìîæíî ïîñëåäîâàòåëüíî íàëîæèòü íåñêîëüêî ôèëüòðîâ. Íàëîæåííûå ôèëüòðû çàíîñÿòñÿ â òåêñòîâîå ïîëå ïîä òàáëè÷êîé.
  5. Íàëîæåííûå ôèëüòðû çàíîñÿòñÿ â òåêñòîâîå ïîëå ïîä òàáëè÷êîé.
  6. Ôèëüòð ïî âåðñèè âñåãäà ïåðåñîçäàåò ñîäåðæèìîå òàáëèöû ïðè èçìåíåíèè âåðñèè. Òåêñòîâûå ôèëüòðû ïðè ýòîì ñáðàñûâàþòñÿ.
  7. Äëÿ ñáðîñà ôèëüòðà ìîæíî î÷èñòèòü ñòðîêó ïîèñêà èëè ñäåëàòü äâîéíîé êëèê íà ýëåìåíò â äåðåâå.
  8. Äâîéíûì êëèêîì â ãðèäå ìîæíî îòêðûòü ôàéë, â êîòîðîì íàéäåí ýòîò ïðèìåð. Ïðèìåð áóäåò âûäåëåí, åñëè ýòî âîçìîæíî.
  9. Âûñîòà êîëîíîê òàáëèöû ìîæåò áûòü ïîïðàâëåíà äî 70% îò âûñîòû òàáëèöû êíîïêîé "Adjust rows".
  10. Âûñîòà êîíêðåòíîé êîëîíêè ìîæåò ïîïðàâëåíà äî 70% îò âûñîòû òàáëèöû äâîéíûì êëèêîì íà çàãîëîâîê ñòîëáöà.
  11. Â äåðåâå ðàáîòàþò ñëåäóþùèå äåéñòâèÿ:
    • äâîéíîé êëèê - âûâåñòè ïðèìåðû äëÿ âûáðàííîãî ýëåìåíòà â òàáëèöó
    • Delete - óäàëèòü ýëåìåíò
    • Ctrl-C - ñêîïèðîâàòü íàçâàíèå ýëåìåíòà â áóôåð îáìåíà
  12. Â ïîëå îïèñàíèÿ ðàáîòàþò ñëåäóþùèå äåéñòâèÿ:
    • äâîéíîé êëèê - ðàäàêòèðîâàòü òåêñò îïèñàíèÿ
    • Ctrl-Enter - ñîõðàíèòü òåêñò
  13. Â òàáëèöå ðàáîòàþò ñëåäóþùèå äåéñòâèÿ:
    • äâîéíîé êëèê - îòêðûòü ôàéë â ðåäàêòîðå
  14. Îòðåäàêòèðîâàííûå îïèñàíèÿ ñîõðàíÿþòñÿ â ôàéë ïðè çàêðûòèè ïðîãðàììû.

Îñîáåííîñòè ðàáîòû:

  • Ïî-óìîë÷àíèþ â ïîëå "File Name" ñîõðàíÿåòñÿ èìÿ òîëüêî ïåðâîãî ôàéëà äëÿ êàæäîãî óíèêàëüíîãî êëþ÷åâîãî ïîëÿ (èíà÷å ê íåêîòîðûì ïîëÿì áóäåò ïî ñîòíå è áîëåå ôàéëîâ). Âêëþ÷àåòñÿ íàñòðîéêîé "Collect all fileNames".
  • Íà âðåìÿ âñåõ äëèòåëüíûõ îïåðàöèé âñå êðèòè÷íûå êîíòðîëû íà UI äåçàêòèâèðóþòñÿ.
  • Ïðåäóñìîòðåíà âîçìîæíîñòü ïåðåôîðìàòèðîâàòü json-âûðàæåíèÿ äëÿ âûñòàâëåíèÿ âåðõíèõ/íèæíèõ ñêîáîê íà îäèí óðîâåíü â îòäåëüíóþ ñòðîêó (ïî-óìîë÷àíèþ âåðõíèå ñêîáêè îñòàþòñÿ íà ñòðîêå îáúåêòà). Âêëþ÷àåòñÿ íàñòðîéêîé "Reformat JSON".

jekyll@mail.ru

Created using

https://github.com/robinrodricks/ScintillaNET.Demo

To do:

1, Schema generation and export based on the collected tree 2. Schema import/export 3. show/change property description from schema for each node in the tree.

About

MetaUI source processor to ease samples search

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages