Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
7ae9f9a
Аннотация как значение параметра Аннотации.
dmpas Aug 30, 2025
78f78b6
Merge remote-tracking branch 'us/develop' into feature/deep-annotations
dmpas Aug 30, 2025
c0a0fcd
Кодировка файла теста.
dmpas Aug 30, 2025
7df3a85
Замечания от кролика.
dmpas Aug 30, 2025
eb5fe02
Аннотация убрана из базовых типов.
dmpas Aug 31, 2025
a2fa4ea
Убрана завязка на константы образа.
dmpas Aug 31, 2025
c514629
Почищен неиспользуемый код.
dmpas Sep 1, 2025
67edf3a
Изменено представление аннотаций в образе.
dmpas Sep 1, 2025
93b5939
Использование потока httpResponse без вычитывания по возможности
asosnoviy Nov 25, 2025
4242513
fix #1580.1: вставка вне размера Таблицы значений
Mr-Rm Dec 2, 2025
5e60b2c
fix #1580.2: исключение ошибки типа в ЗагрузитьКолонку
Mr-Rm Dec 2, 2025
2a406cd
fix #1580.3: исключение при лишних символах в параметре сортировки
Mr-Rm Dec 2, 2025
1bba530
Бамп версии
EvilBeaver Dec 2, 2025
69ec2b9
Бамп версии плагина vscode
EvilBeaver Dec 2, 2025
b18881a
fix #1580.4,6,10: пустой список колонок означает все колонки
Mr-Rm Dec 2, 2025
dcab8b6
рефакторинг метода Скопировать, с тестом
Mr-Rm Dec 2, 2025
665b2b4
fix #1580.5: Итог по колонке с указанными типами
Mr-Rm Dec 2, 2025
3e2763b
fix EvilBeaver#1580.7: неверное имя колонки в отборе для НайтиСтроки()
Mr-Rm Dec 2, 2025
dc8eaae
fix #1580.8: допускать лишние запятые в списке колонок
Mr-Rm Dec 2, 2025
bdfaf96
fix #1580.9: исключение "Неправильное смещение внутри коллекции"
Mr-Rm Dec 2, 2025
10de20c
правки по замечаниям coderabbit; добавлены тесты
Mr-Rm Dec 3, 2025
dddaa5e
исключение при проверке типа аргумента функции Индекс
Mr-Rm Dec 3, 2025
1a6e120
Вынесены общее исключение индекса и принадлежности строки
Mr-Rm Dec 3, 2025
89cdeef
Слияние с develop
dmpas Dec 3, 2025
08557fe
Проверка имен колонок в правилах сортировки
Mr-Rm Dec 3, 2025
d007615
мелкие подчистки
Mr-Rm Dec 3, 2025
140223e
Смена дефолтного поведения неявных импортов в отладке
EvilBeaver Dec 3, 2025
ce505f7
уточнен вид ошибки; мелкие правки
Mr-Rm Dec 4, 2025
22c9136
по замечанию: игнорировать множественные пробелы
Mr-Rm Dec 5, 2025
b943fc3
Merge pull request #1623 from Mr-Rm/v2/fix-1580
EvilBeaver Dec 5, 2025
a4d4310
fixed #1627 Не срабатывают точки останова на коротких скриптах
EvilBeaver Dec 5, 2025
a5adff6
Отдельные тесты для дебагадаптера удалены, внесены в тесты протокола
EvilBeaver Dec 5, 2025
90cb7e7
Merge pull request #1576 from EvilBeaver/feature/deep-annotations
EvilBeaver Dec 5, 2025
8de2f06
fix #1626.1: проверка корректности имени добавляемой колонки
Mr-Rm Dec 4, 2025
e097ab7
fix #1626.2: корректное сообщение об ошибочном типе аргумента
Mr-Rm Dec 6, 2025
447af44
скорректирован тип исключения; мекие правки
Mr-Rm Dec 6, 2025
03b0459
Merge pull request #1628 from Mr-Rm/v2/fix-1626
EvilBeaver Dec 8, 2025
a1c65e9
fix: не обновлялись индексы при установке значений через []
Mr-Rm Dec 8, 2025
9e820b5
проверка правильности индекса колонки
Mr-Rm Dec 8, 2025
80b01c5
рефакторинг: поле вместо свойства, уточнение типа, чистка локальных
Mr-Rm Dec 8, 2025
bcf9e6a
Merge pull request #1629 from Mr-Rm/v2/fix-vtrow
EvilBeaver Dec 9, 2025
1a96bcf
Попробуем сменит порт.
asosnoviy Dec 10, 2025
5d3581a
Вместо http bin локальный адресс
asosnoviy Dec 10, 2025
57d4481
Перенос _RawStream в body
asosnoviy Dec 10, 2025
3fe6700
Merge pull request #1618 from asosnoviy/feature/rawStream
EvilBeaver Dec 10, 2025
94473d1
Удалил неиспользуемый метод, отформатировал файл
EvilBeaver Dec 10, 2025
3a4102c
Тест на получение тела несколько раз
asosnoviy Dec 12, 2025
10c5ad7
Перенос вычитывания потока из конструктора
asosnoviy Dec 12, 2025
f990f85
Повторное получение потока
asosnoviy Dec 12, 2025
45cb9a8
тест на второе вычитывание потока
asosnoviy Dec 12, 2025
5e1ec2e
connectorhttp.ru в список зеркал httpbin
asosnoviy Dec 12, 2025
4f43b93
Забетонировал поведение очистки потока в тесте
asosnoviy Dec 12, 2025
6260b5b
Получение адреса тестового ресурса из http.os теста
asosnoviy Dec 12, 2025
4a702c0
Параметр rawStream Метода ПолучитьТелоКакПоток()
asosnoviy Dec 12, 2025
cb898ef
мАдресРесурса инициализировать только один раз
asosnoviy Dec 12, 2025
86b9369
Bump actions/cache from 4 to 5
dependabot[bot] Dec 12, 2025
f08b76f
Merge pull request #1631 from EvilBeaver/dependabot/github_actions/ac…
nixel2007 Dec 13, 2025
11d8c5f
Merge pull request #1630 from asosnoviy/fix/rawStream
EvilBeaver Dec 13, 2025
07f6cec
Merge remote-tracking branch 'origin/develop' into develop
EvilBeaver Dec 14, 2025
35e6213
Исправление ошибки в сравнении для индексов
EvilBeaver Dec 14, 2025
2d713e4
Исправлено квадратичное замедление во вставке срок в индексированную …
EvilBeaver Dec 14, 2025
49da761
release notes для очередной версии
EvilBeaver Dec 16, 2025
368f95a
Merge branch 'develop' into feature/publish-preview
EvilBeaver Dec 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ jobs:
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Cache SonarQube packages
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ~\sonar\cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache SonarQube scanner
id: cache-sonar-scanner
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: .\.sonar\scanner
key: ${{ runner.os }}-sonar-scanner
Expand Down
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ pipeline {

environment {
VersionPrefix = '2.0.0'
VersionSuffix = 'rc.9'
VersionSuffix = 'rc.10'
outputEnc = '65001'
}

Expand Down
43 changes: 13 additions & 30 deletions install/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,19 @@
# Версия 2.0.0-rc.9
# Версия 2.0.0-rc.10

## Новые возможности

- [#1540](https://github.com/EvilBeaver/OneScript/issues/1540) - Добавлено предупреждение о неявных импортах при компиляции для контроля явного объявления зависимостей
- [#1585](https://github.com/EvilBeaver/OneScript/issues/1585) - Добавлен параметр `ИгнорироватьТипДокумента` при чтении XML
- [#1586](https://github.com/EvilBeaver/OneScript/issues/1586) - Добавлена поддержка пропуска пробельных символов после служебных элементов XML
- [#392](https://github.com/EvilBeaver/OneScript/issues/392) - Метод `ЗаписатьТекущий()` для XML теперь корректно копирует декларацию XML и тип документа
- [#1545](https://github.com/EvilBeaver/OneScript/issues/1545) - Разрешено использование комментариев после аннотаций модуля и в строках с директивой `Использовать`
- [#1593](https://github.com/EvilBeaver/OneScript/issues/1593) - Полностью переработан сервер отладки, возможно переподключение к серверу после завершения сессии отладки.
- Улучшена производительность компиляции большого числа модулей
- Добавлена возможность выполнять attach отладчика внутрь контейнера с 1Script. Предусмотрен маппинг локальных путей и путей внутри контейнера.

## Исправления ошибок
## Исправления ошибок, обнаруженных в 2.0.0-rc.10

- [#1573](https://github.com/EvilBeaver/OneScript/issues/1573) - Исправлена работа метода `НайтиСтроки()` для таблицы значений по индексированной колонке с указанным типом
- [#1582](https://github.com/EvilBeaver/OneScript/issues/1582),[#1577](https://github.com/EvilBeaver/OneScript/issues/1577) - Исправлена сортировка чисел и типов в таблице значений
- [#1556](https://github.com/EvilBeaver/OneScript/issues/1556), [#1611](https://github.com/EvilBeaver/OneScript/issues/1611) - Исправлен учет перехода на летнее время в функции `УниверсальноеВремя()`, добавлена поддержка временных зон восточно-европейского времени
- [#1567](https://github.com/EvilBeaver/OneScript/issues/1567) - Исправлено некорректное отображение параметров метода в отладчике
- [#1552](https://github.com/EvilBeaver/OneScript/issues/1552) - Исправлена обработка слова `Ждать` вне асинхронного метода
- [#1603](https://github.com/EvilBeaver/OneScript/issues/1603) - Исправлена работа функции `СтрЗаменить()`
- [#1602](https://github.com/EvilBeaver/OneScript/issues/1602) - Исправлено преобразование элемента списка значений в строку
- [#1542](https://github.com/EvilBeaver/OneScript/issues/1542) - Улучшено позиционирование ошибок в исходном коде
- ряд других ошибок
* Изменено поведение по умолчанию для опции lang.explicitImports под отладкой. Теперь неявные импорты не считаются критичной ошибкой
* #1627: Исправлена ошибка несрабатывания отладчика на коротких скриптах

## Устаревание
## Исправление текущих ошибок

- [#1544](https://github.com/EvilBeaver/OneScript/issues/1544) - Английский вариант перечисления `StreamPosition` объявлен устаревшим в пользу `PositionInStream`
* #1580, #1626: Улучшено соответствие поведения ТаблицыЗначений поведению 1С
* Исправлена медленная вставка строк в индексированную таблицу значений
*

## Технические изменения

- Выполнен переход на .NET 8.

## Благодарности
## Новые возможности

Большое спасибо @Mr-Rm, @dmpas, @asosnoviy, @nixel2007, @Bayselonarrend за участие в этом релизе!
* Доступ к сырому сетевому потоку при вызове http-метода. Позволяет организовать http-streaming
* Использование аннотаций внутри параметров аннотаций

Большое спасибо @Mr-Rm, @dmpas, @asosnoviy, @nixel2007, @Bayselonarrend за участие в этом релизе!
20 changes: 1 addition & 19 deletions src/1Script.sln
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OneScript.Web.Server", "One
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumenterTests", "Tests\DocumenterTests\DocumenterTests.csproj", "{BD385142-E9B4-43C1-8F88-067F24E5AF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSCode.DebugAdapter.Tests", "Tests\VSCode.DebugAdapter.Tests\VSCode.DebugAdapter.Tests.csproj", "{861F70F4-B10D-4E4E-865C-B8E900391424}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -189,8 +187,8 @@ Global
{76F2521D-44D7-48C9-A678-074E22B46092}.LinuxDebug|x86.ActiveCfg = LinuxDebug|Any CPU
{76F2521D-44D7-48C9-A678-074E22B46092}.LinuxDebug|x86.Build.0 = LinuxDebug|Any CPU
{76F2521D-44D7-48C9-A678-074E22B46092}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76F2521D-44D7-48C9-A678-074E22B46092}.Release|x86.ActiveCfg = Release|Any CPU
{76F2521D-44D7-48C9-A678-074E22B46092}.Release|Any CPU.Build.0 = Release|Any CPU
{76F2521D-44D7-48C9-A678-074E22B46092}.Release|x86.ActiveCfg = Release|Any CPU
{4FF7C82D-BFEF-415E-81FF-5C0337E99845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4FF7C82D-BFEF-415E-81FF-5C0337E99845}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FF7C82D-BFEF-415E-81FF-5C0337E99845}.Debug|x86.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -333,18 +331,6 @@ Global
{BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|Any CPU.Build.0 = Release|Any CPU
{BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.ActiveCfg = Release|Any CPU
{BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.Build.0 = Release|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|Any CPU.Build.0 = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|x86.ActiveCfg = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|x86.Build.0 = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|Any CPU.ActiveCfg = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|Any CPU.Build.0 = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|x86.ActiveCfg = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|x86.Build.0 = Debug|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Release|Any CPU.ActiveCfg = Release|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Release|Any CPU.Build.0 = Release|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Release|x86.ActiveCfg = Release|Any CPU
{861F70F4-B10D-4E4E-865C-B8E900391424}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -357,7 +343,6 @@ Global
{0F5E6099-39BA-41CF-B55F-357F7DF4DE00} = {91059C5B-526C-4B81-B106-99DEFF542D1F}
{2F264379-B3B4-44B3-9CBA-A4B0AF3D8785} = {91059C5B-526C-4B81-B106-99DEFF542D1F}
{BD385142-E9B4-43C1-8F88-067F24E5AF6D} = {91059C5B-526C-4B81-B106-99DEFF542D1F}
{861F70F4-B10D-4E4E-865C-B8E900391424} = {91059C5B-526C-4B81-B106-99DEFF542D1F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A4A871EF-C5A7-478F-907E-31C69A869973}
Expand All @@ -376,7 +361,4 @@ Global
$3.inheritsSet = null
$3.scope = application/xaml+xml
EndGlobalSection
GlobalSection(Performance) = preSolution
HasPerformanceSessions = true
EndGlobalSection
EndGlobal
15 changes: 14 additions & 1 deletion src/OneScript.Core/Commons/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,20 @@ public static void ForEach<T>(this IEnumerable<T> input, Action<T> action)
action(data);
}
}

public static string NameAndValuePresentation(string name, object value)
{
var list = new List<string>();
if (!string.IsNullOrEmpty(name))
{
list.Add(name);
}
if (value != null)
{
list.Add(value.ToString());
}
return string.Join("=", list);
}

public static bool IsMonoRuntime => Type.GetType("Mono.Runtime") != null;

}
Expand Down
11 changes: 8 additions & 3 deletions src/OneScript.Core/Contexts/BslAnnotationAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ This Source Code Form is subject to the terms of the
at http://mozilla.org/MPL/2.0/.
----------------------------------------------------------*/

using OneScript.Commons;
using OneScript.Values;
using System;
using System.Collections.Generic;
using OneScript.Values;

namespace OneScript.Contexts
{
Expand Down Expand Up @@ -37,7 +38,7 @@ public void SetParameters(IEnumerable<BslAnnotationParameter> parameters)

public class BslAnnotationParameter
{
public BslAnnotationParameter(string name, BslPrimitiveValue value)
public BslAnnotationParameter(string name, BslPrimitiveValue value = null)
{
Name = name;
Value = value;
Expand All @@ -47,6 +48,10 @@ public BslAnnotationParameter(string name, BslPrimitiveValue value)

public BslPrimitiveValue Value { get; }

public int ConstantValueIndex { get; set; } = -1;
public override string ToString()
{
return Utils.NameAndValuePresentation(Name, Value);
}

}
}
16 changes: 15 additions & 1 deletion src/OneScript.Core/Exceptions/RuntimeException.cs
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,22 @@ public static RuntimeException InvalidEncoding(string encoding)
return new RuntimeException(
$"Неправильное имя кодировки '{encoding}'",
$"Invalid encoding name '{encoding}'");
}

public static RuntimeException IncorrectOffset()
{
return new RuntimeException(
"Неправильное смещение внутри коллекции",
"Incorrect offset within collection");
}

public static RuntimeException IndexOutOfRange()
{
return new RuntimeException(
"Значение индекса выходит за пределы диапазона",
"Index is out of range");
}

#endregion
}
}
58 changes: 58 additions & 0 deletions src/OneScript.Core/Values/BslAnnotationValue.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*----------------------------------------------------------
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
at http://mozilla.org/MPL/2.0/.
----------------------------------------------------------*/

using System;
using OneScript.Contexts;
using OneScript.Exceptions;
using OneScript.Localization;
using OneScript.Types;
using System.Collections.Generic;
using System.Text;

namespace OneScript.Values
{
public sealed class BslAnnotationValue : BslPrimitiveValue
{
public BslAnnotationValue(string name) {
Name = name;
}

public string Name { get; }

public List<BslAnnotationParameter> Parameters { get; } = new List<BslAnnotationParameter>();


public override int CompareTo(BslValue other) {
var msg = new BilingualString("Сравнение на больше/меньше для данного типа не поддерживается",
"Comparison for less/greater is not supported for this type");

throw new RuntimeException(msg);
}

public override bool Equals(BslValue other) {
return ReferenceEquals(this, other);
}

public override string ToString()
{
var sb = new StringBuilder("&");
sb.Append(Name);
if (Parameters.Count != 0)
{
var prefix = "(";
foreach (var parameter in Parameters)
{
sb.Append(prefix);
sb.Append(parameter);
prefix = ",";
}
sb.Append(")");

Check notice on line 53 in src/OneScript.Core/Values/BslAnnotationValue.cs

View check run for this annotation

sonar.openbsl.ru qa-bot / SonarQube Code Analysis

src/OneScript.Core/Values/BslAnnotationValue.cs#L53

Use 'StringBuilder.Append(char)' instead of 'StringBuilder.Append(string)' when the input is a constant unit string
}
return sb.ToString();
}
}
}
11 changes: 8 additions & 3 deletions src/OneScript.Core/Values/BslUndefinedValue.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*----------------------------------------------------------
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
at http://mozilla.org/MPL/2.0/.
----------------------------------------------------------*/

Expand All @@ -24,6 +24,11 @@ public override bool Equals(BslValue other)
return ReferenceEquals(Instance, other);
}

public override int GetHashCode()
{
return 42; // Константа для синглтона
}

public override string ToString() => string.Empty;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the
at http://mozilla.org/MPL/2.0/.
----------------------------------------------------------*/

using System.Diagnostics;
using System.Threading;
using ScriptEngine.Machine;
using ScriptEngine.Machine.Debugger;
Expand Down Expand Up @@ -53,6 +54,11 @@ public void WaitReadyToRun()
}

_connectionEvent.Wait();
Debug.Assert(_isConnected, "Must be connected");
Debug.Assert(_session is DebugSession, "Session must be DebugSession");

// Делегируем ожидание реальной сессии
_session.WaitReadyToRun();
}

public bool IsActive => _session.IsActive;
Expand Down
10 changes: 10 additions & 0 deletions src/OneScript.Language/Localization/BilingualString.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,15 @@ public static string Localize(string russian, string english)

return russian;
}
}

public static class BilingualStringExtension
{
public static bool BilingualEquals(this string str, string lang1, string lang2,
StringComparison comparison = StringComparison.CurrentCultureIgnoreCase)
{
return string.Equals(str, lang1, comparison) || string.Equals(str, lang2, comparison);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,29 @@ public AnnotationParameterNode() : base(NodeKind.AnnotationParameter)

protected override void OnChildAdded(BslSyntaxNode child)
{
var node = (TerminalNode) child;
if (child.Kind == NodeKind.AnnotationParameterName)
if (child.Kind == NodeKind.Annotation)
{
Name = node.Lexem.Content;
AnnotationNode = (AnnotationNode)child;
}
if (child.Kind == NodeKind.AnnotationParameterValue)
else
{
Value = node.Lexem;
var node = (TerminalNode)child;
if (child.Kind == NodeKind.AnnotationParameterName)
{
Name = node.Lexem.Content;
}
if (child.Kind == NodeKind.AnnotationParameterValue)
{
Value = node.Lexem;
}
}
}

public string Name { get; private set; }

public Lexem Value { get; private set; }

public AnnotationNode AnnotationNode { get; private set; }

}
}
Loading