mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 23:13:22 +03:00
fix(mxl-decompile): не писать style по умолчанию, чинить потерю стиля при rowStyle
Одно условие делает две вещи. Сокращение: у 56% ячеек (19 737 из 35 190) стоял "style": "default", хотя компилятор и так подставляет default, когда ключа нет и у строки нет rowStyle. Чистый шум; объём декомпилированного JSON на пилоте упал на 7%. Починка: при ЗАДАННОМ rowStyle ячейка со стилем default, которая его не наследует, теряла стиль вовсе — условие содержало -not rowStyleName, — и при обратной сборке такая ячейка наследовала rowStyle вместо своего умолчания. Проверка на потери: из 40 макетов пилота 23 собрались байт в байт как прежде. У 17 XML изменился, и это разобрано поячеечно: во всех 181 разошедшейся ячейке НИ ОДНА версия не совпадает с оригиналом — там backColor, фон ячейки, который DSL не поддерживает вовсе (числится в ограничениях). То есть правка переключает между двумя одинаково неверными отображениями неподдерживаемой конструкции, не улучшая и не ухудшая совпадение: фактов, совпавших с оригиналом, было 8183 и осталось 8183. Проверено: тесты 54/54 на обоих рантаймах. Дрейф снэпшота один и ожидаемый — из back.json ушёл "style": "default". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1e06e43e92
commit
a9697b613d
@@ -1,4 +1,4 @@
|
||||
# mxl-decompile v1.6 — Decompile 1C spreadsheet to JSON
|
||||
# mxl-decompile v1.7 — Decompile 1C spreadsheet to JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -638,8 +638,13 @@ foreach ($area in $blocks) {
|
||||
if ($rowStyleKey -and $cellStyleKey -eq $rowStyleKey) {
|
||||
# Inherits rowStyle
|
||||
} else {
|
||||
# Стиль пишем, только когда он отличается от того, что подставит компилятор:
|
||||
# без rowStyle умолчание и есть "default", поэтому такой ключ — шум (56% ячеек).
|
||||
# А при заданном rowStyle стиль "default" писать ОБЯЗАТЕЛЬНО: раньше здесь стояло
|
||||
# `-not $rowStyleName`, и такая ячейка теряла стиль вовсе — при обратной сборке
|
||||
# она наследовала rowStyle.
|
||||
$sn = Get-StyleName $cell.FormatIdx
|
||||
if ($sn -ne "default" -or -not $rowStyleName) {
|
||||
if ($sn -ne "default" -or $rowStyleName) {
|
||||
$dslCell["style"] = $sn
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# mxl-decompile v1.6 — Decompile 1C spreadsheet to JSON
|
||||
# mxl-decompile v1.7 — Decompile 1C spreadsheet to JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -807,8 +807,13 @@ def main():
|
||||
if row_style_key and cell_style_key == row_style_key:
|
||||
pass # Inherits rowStyle
|
||||
else:
|
||||
# Стиль пишем, только когда он отличается от того, что подставит компилятор:
|
||||
# без rowStyle умолчание и есть "default", поэтому такой ключ — шум (56% ячеек).
|
||||
# А при заданном rowStyle стиль "default" писать ОБЯЗАТЕЛЬНО: раньше здесь было
|
||||
# `not row_style_name`, и такая ячейка теряла стиль вовсе — при обратной сборке
|
||||
# она наследовала rowStyle.
|
||||
sn = get_style_name(cell["FormatIdx"])
|
||||
if sn != "default" or not row_style_name:
|
||||
if sn != "default" or row_style_name:
|
||||
dsl_cell["style"] = sn
|
||||
|
||||
# Content
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "columns": 2, "defaultWidth": 10, "fonts": { "default": { "face": "Arial", "size": 10 } }, "styles": {}, "areas": [{ "name": "Test", "rows": [{ "cells": [{ "col": 1, "style": "default", "text": "A" }, { "col": 2, "style": "default", "text": "B" }] }] }] }
|
||||
{ "columns": 2, "defaultWidth": 10, "fonts": { "default": { "face": "Arial", "size": 10 } }, "styles": {}, "areas": [{ "name": "Test", "rows": [{ "cells": [{ "col": 1, "text": "A" }, { "col": 2, "text": "B" }] }] }] }
|
||||
Reference in New Issue
Block a user