diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index e0d47d338..f5acc4689 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "8"; public const string Build = "2"; - public const string Revision = "3081"; + public const string Revision = "3085"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 7db63b750..5dd7c4a72 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %MINOR%=8 -%REVISION%=3081 +%REVISION%=3085 %COREVERSION%=2 %MAJOR%=3 diff --git a/ICSharpCode.TextEditor/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs b/ICSharpCode.TextEditor/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs index 56735effd..7e4a9cb97 100644 --- a/ICSharpCode.TextEditor/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs +++ b/ICSharpCode.TextEditor/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs @@ -350,6 +350,19 @@ namespace ICSharpCode.TextEditor.Document } } } + var fe = words.FindIndex(tw => string.Compare(tw.Word, "foreach", true) == 0); + if (fe >= 0) + { + var index = words.FindIndex(tw => string.Compare(tw.Word, "index", true) == 0); + if (index >= 0) + { + var f = words[fe]; + var ind = words[index]; + ind.SyntaxColor = f.SyntaxColor; + } + + } + if (currentSpanStack != null && currentSpanStack.IsEmpty) { currentSpanStack = null; diff --git a/InstallerSamples/WhatsNew/3_8_3/foreach_index.pas b/InstallerSamples/WhatsNew/3_8_3/foreach_index.pas new file mode 100644 index 000000000..79485f75c --- /dev/null +++ b/InstallerSamples/WhatsNew/3_8_3/foreach_index.pas @@ -0,0 +1,6 @@ +п»їbegin + var index := 0; + var a := Arr(3, 5, 7); + foreach var x in a index i do + Println(i, x); +end. \ No newline at end of file diff --git a/Libraries/ICSharpCode.TextEditor.dll b/Libraries/ICSharpCode.TextEditor.dll index 1c64e7654..3fffb04e8 100644 Binary files a/Libraries/ICSharpCode.TextEditor.dll and b/Libraries/ICSharpCode.TextEditor.dll differ diff --git a/PABCNetHelp/LangGuide/Operators/for.html b/PABCNetHelp/LangGuide/Operators/for.html index e22d61ec9..510abc4ab 100644 --- a/PABCNetHelp/LangGuide/Operators/for.html +++ b/PABCNetHelp/LangGuide/Operators/for.html @@ -6,6 +6,7 @@ +
Наконец, в заголовке цикла for можно указать шаг изменения цикла:
++++
for varпеременная:= +начальное + значениеtoконечное + значениеstepзначениеdo
+оператор
При наличии шага цикла разрешается использовать только направление to.
Шаг step может быть отрицательным. Если шаг
+step равен нулю, возникает ошибка времени выполнения программы.
Текст от слова for до слова do
включительно называется заголовком цикла, а
оператор после do - телом цикла.
@@ -86,7 +98,7 @@
...
for en := red to blue do
write(Ord(en):2);
- for var c := 'a' to 'z' do
+ for var c := 'a' to 'z' step 2 do
write(c);
Если для цикла for ... to
diff --git a/PABCNetHelp/LangGuide/Operators/foreach.html b/PABCNetHelp/LangGuide/Operators/foreach.html
index b1876a3ea..1efd7f27f 100644
--- a/PABCNetHelp/LangGuide/Operators/foreach.html
+++ b/PABCNetHelp/LangGuide/Operators/foreach.html
@@ -4,6 +4,7 @@
foreachпеременная- inконтейнерdo
+ inконтейнер[index + переменная] do
оператор
или
foreachпеременная:типinконтейнер+ [index переменная] do
оператор
или
@@ -40,8 +44,11 @@ должна иметь тип, совпадающий с типом элементов контейнера (если контейнер удовлетворяет интерфейсу
foreach varпеременнаяinконтейнер+ [index переменная] do
оператор
IEnumerable, то это тип object). В последней форме
-foreach тип переменной цикла автовыводится по типу элементов
+foreach тип переменной цикла автовыводится по типу элементов
контейнера.
+Необязательная часть
+index переменная вводит переменную, которая хранит на
+каждой итерации индекс элемента контейнера (элементы индексируются с нуля).
Переменная цикла пробегает все значения элементов контейнера и для каждого значения переменной цикла выполняется тело цикла. Изменение переменной цикла diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html index b31b1dac7..51fb1dfcc 100644 --- a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html @@ -8,9 +8,9 @@
procedure Assign(f: файл; name: string);
+
|