diff --git a/docs/Help/Topics/VersionHistory.xml b/docs/Help/Topics/VersionHistory.xml index 01f3fce657..43050e4a64 100644 --- a/docs/Help/Topics/VersionHistory.xml +++ b/docs/Help/Topics/VersionHistory.xml @@ -1,6 +1,6 @@  - + Version History Changes @@ -180,7 +180,6 @@ Bug fixes
  • Fixed problem with saving/reading the OldStyleAssignment compiler option project setting (#1495)
  • -
  • Improved the Clone Window selection dialog in the VOWED (#1508)
  • Fixed an issue in VS2022 where several features in the editor were no longer working due to a change in VS (#1545)
  • Fixed editor indentation problem with SCAN...END SCAN (#1549)
  • Fixed a problem with putting the .resx file for windows forms user controls in an incorrect location in the Solution Explorer (#1560)
  • @@ -205,6 +204,14 @@
  • We have made several changes to the X# intellisense database structure. When you open a solution with an existing database, the database will be deleted and all source files will be rescanned (only once).
  • The X# source code editor now has an extra combobox on the top, listing the projects where a file is included. When a file is included in more than one project, all these projects can be seen. Switching to a new project will change the 'evaluation context'. Conditional compiles (#ifdef) will reflect the change in the editor.
  • We have added support for the commands Edit.NextMethod and Edit.PreviousMethod in the editor. There usually is no shortcut for these commands, but you can assign them with the "Customize" option on the Toolbar in Visual Studio. You could assign Ctrl-DownArrow and Ctl-UpArrow for example.
  • +
  • Improved the Clone Window selection dialog in the VOWED (#1508)
  • +
  • When selecting multiple controls in the VOWED, now that lastly selected control becomes the "active" one for the Properties window
  • +
  • When pasting a control in the VOWED, it now goes to the bottom of the control order list
  • +
    + +
  • Added option in the VOWED Control Order dialog to start adjusting the control order of controls after the currently selected one when using "Use Mouse"
  • +
    +
  • Updated the Mono.Cecil library to 0.11.6
  • Project files are adjusted when properties that were "implicit" before are missing (see above)
  • @@ -222,11 +229,17 @@
  • Fixed problem with not properly saving the compiler options /initlocals, /modernsyntax, /allowoldstyleassignments and /namedargs.
  • The Clipboard item in the main XIDE window statusbar now shows the current clipboard contents in a tooltip.
  • The Clipboard selection context menu now also displays the contents of every virtual clipboard.
  • -
  • Some small corrections to the Plugin System (you may need to recompile your plugins).
  • Added Open Bin Folder context menu option for the project node in the Project tool window.
  • Added option to the windows resource editor to include strings and text files.
  • Added application templates for FoxPro, XBase++, and Harbour dialects.
  • Application templates shown in the New Application dialog are now sorted by the GalleryIndex setting of each gallery file template.
  • +
  • Implemented new menu options View|Load/Save/Reset Layout, for switching between different layouts for the IDE window and tool windows
  • +
  • Added some new templates (code snippets) in template.cfg
  • +
  • Added project support for the /vo15 compiler option
  • +
  • Added standalone files default setting for the allowdot compiler option (Preferences/Compiler)
  • +
  • Added option to set the console location when running console apps (Preferences/Advanced)
  • +
  • Included several "hidden" commands in the main menu (File/Navigate and Edit/Advanced)
  • +
  • Improved deletion of items in the Watch tool window
  • Improved the About XIDE dialog.
  • Editor @@ -244,7 +257,10 @@
  • The editor now recognizes && for line comments marker in FoxPro dialect.
  • Added intellisense support for Nullable types specified with the ? postfix (for example, INT?).
  • Added intellisense support for the ?: operator.
  • -
  • Added intellisense support for IF <identifier> IS <type> VAR <local>.
  • +
  • Added intellisense support for IF <identifier> IS <type> VAR <local>
  • +
  • Added option (Preferences/Editor/Edit) to automatically adjust numeric literals containing underscores
  • +
  • Added context menu Surround with options for REPEAT..UNTIL and BEGIN SCOPE...END
  • +
  • Added (experimental) option to sort entities in the editor (Edit->Sort Entities)
  • Designers @@ -258,6 +274,8 @@
  • Added toolbar button to Lock/Unlock controls in the Windows.Forms and VO Window editors.
  • Locked state of controls is now preserved in the Windows.Forms designer (needs a Save Form to apply).
  • Fixed problem with setting the Text property of strip items to empty.
  • +
  • Added option in the VOWED Control Order dialog to start adjusting the control order of controls after the currently selected one when using "Use Mouse".
  • +
  • Added components SaveFileDialog, OpenFileDialog and FolderBrowserDialog in the Windows.Forms toolbox
  • Debugger @@ -266,6 +284,14 @@
  • Fixed a problem with incorrectly breaking on excluded handled exceptions.
  • Fixed a common crash that could happen in the debugger.
  • + + Plugin System + +
  • Some small corrections to the Plugin System (you may need to recompile your plugins)
  • +
  • Added Plugin:OnAfterCompileApplication(oApp AS Application, eResult AS CompileResult) callback method
  • +
  • Added Editor:SetSelection() method to select text in the editor
  • +
  • Entity objects returned from the plugin system no longer include END CLASS and END NAMESPACE statements
  • +
    Documentation Bug fixes diff --git a/src/Compiler/src/Compiler/XSharpCodeAnalysis/Parser/XSharpTreeTransformationCore.cs b/src/Compiler/src/Compiler/XSharpCodeAnalysis/Parser/XSharpTreeTransformationCore.cs index d582e85092..4c0500f83d 100644 --- a/src/Compiler/src/Compiler/XSharpCodeAnalysis/Parser/XSharpTreeTransformationCore.cs +++ b/src/Compiler/src/Compiler/XSharpCodeAnalysis/Parser/XSharpTreeTransformationCore.cs @@ -9216,31 +9216,27 @@ protected ExpressionSyntax CreateInterPolatedStringExpression(IToken token, XSha } string format = null; string expr = e; - int pos = expr.IndexOf(':'); - if (!allowDot) + bool singleColon = false; + // Format character? + int pos = expr.IndexOf("::"); + if (pos < 0 && allowDot) { - pos = expr.IndexOf("::"); + pos = expr.IndexOf(':'); + singleColon = pos > 0; } if (pos > 0) { var lhs = expr.Substring(0, pos).ToUpper(); - if (lhs == "SELF" || lhs == "SUPER" || lhs == "THIS") + if (singleColon) { - ; // do nothing. Assume SELF:, SUPER: and THIS: are not shown with format specifier + format = expr.Substring(pos); } else { - if (allowDot) - { - format = expr.Substring(pos); - } - else - { - format = expr.Substring(pos + 1); - } - expr = expr.Substring(0, pos); + format = expr.Substring(pos + 1); } + expr = expr.Substring(0, pos); } res = ParseSubExpression(expr, out var extra, token); if (!string.IsNullOrEmpty(format)) diff --git a/src/CompilerTests/Applications/R915/Prg/R915.prg b/src/CompilerTests/Applications/R915/Prg/R915.prg index 6eaa0cbe7c..da617e1888 100644 --- a/src/CompilerTests/Applications/R915/Prg/R915.prg +++ b/src/CompilerTests/Applications/R915/Prg/R915.prg @@ -51,5 +51,7 @@ CLASS Test CONSTRUCTOR(nNum as DWORD) SELF:Text := Repl(Chr(64+nNum),10) SELF:Number := nNum - REPLACE FLD1 with ::Text + // Removed next line. Would try to read at EOF in the + // test code, and will also overwrite changes to the previous record + //REPLACE FLD1 with ::Text END CLASS diff --git a/src/CompilerTests/Automated/CompilerTests.prg b/src/CompilerTests/Automated/CompilerTests.prg index 6d607c7b74..c63761b7e1 100644 --- a/src/CompilerTests/Automated/CompilerTests.prg +++ b/src/CompilerTests/Automated/CompilerTests.prg @@ -597,7 +597,7 @@ RETURN oApp METHOD LoadApplication(oApp AS AppClass,oStream AS StreamReader) AS STRING STATIC LOCAL aRuntime := {; - "XSharp.Core","XSharp.VO","XSharp.RT","XSharp.RDD","XSharp.VFP","XSharp.XPP","XSharp.MacroCompiler","XSharp.Data",; + "XSharp.Core","XSharp.VO","XSharp.RT","XSharp.RDD","XSharp.VFP","XSharp.XPP","XSharp.MacroCompiler","XSharp.Data", "XSharp.Harbour",; "VulcanRTFuncs","VulcanRT",; "VulcanVOConsoleClasses","VulcanVOGUIClasses","VulcanVOInternetClasses","VulcanVORDDClasses","VulcanVOSQLClasses","VulcanVOSystemClasses","VulcanVOWin32APILibrary",; "VOConsoleClasses","VOGUIClasses","VOInternetClasses","VORDDClasses","VOSQLClasses","VOSystemClasses","VOWin32APILibrary"; diff --git a/src/CompilerTests/Runtime/VOConsoleClasses.dll b/src/CompilerTests/Runtime/VOConsoleClasses.dll index 44f127dadc..a733082fe5 100644 Binary files a/src/CompilerTests/Runtime/VOConsoleClasses.dll and b/src/CompilerTests/Runtime/VOConsoleClasses.dll differ diff --git a/src/CompilerTests/Runtime/VOGUIClasses.dll b/src/CompilerTests/Runtime/VOGUIClasses.dll index 305701b40c..b3e2851129 100644 Binary files a/src/CompilerTests/Runtime/VOGUIClasses.dll and b/src/CompilerTests/Runtime/VOGUIClasses.dll differ diff --git a/src/CompilerTests/Runtime/VOInternetClasses.dll b/src/CompilerTests/Runtime/VOInternetClasses.dll index af30d7f0a5..cb044b6318 100644 Binary files a/src/CompilerTests/Runtime/VOInternetClasses.dll and b/src/CompilerTests/Runtime/VOInternetClasses.dll differ diff --git a/src/CompilerTests/Runtime/VORDDClasses.dll b/src/CompilerTests/Runtime/VORDDClasses.dll index 84a7789b50..4a62a79f6d 100644 Binary files a/src/CompilerTests/Runtime/VORDDClasses.dll and b/src/CompilerTests/Runtime/VORDDClasses.dll differ diff --git a/src/CompilerTests/Runtime/VOSQLClasses.dll b/src/CompilerTests/Runtime/VOSQLClasses.dll index 5799e8c5d7..275b6be7f3 100644 Binary files a/src/CompilerTests/Runtime/VOSQLClasses.dll and b/src/CompilerTests/Runtime/VOSQLClasses.dll differ diff --git a/src/CompilerTests/Runtime/VOSystemClasses.dll b/src/CompilerTests/Runtime/VOSystemClasses.dll index b19ae48aa6..684b5f7e54 100644 Binary files a/src/CompilerTests/Runtime/VOSystemClasses.dll and b/src/CompilerTests/Runtime/VOSystemClasses.dll differ diff --git a/src/CompilerTests/Runtime/VOWin32APILibrary.dll b/src/CompilerTests/Runtime/VOWin32APILibrary.dll index 5701e1c850..4b54cbdb9f 100644 Binary files a/src/CompilerTests/Runtime/VOWin32APILibrary.dll and b/src/CompilerTests/Runtime/VOWin32APILibrary.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.Core.dll b/src/CompilerTests/Runtime/XSharp.Core.dll index 739d1adb9e..2cf456ef61 100644 Binary files a/src/CompilerTests/Runtime/XSharp.Core.dll and b/src/CompilerTests/Runtime/XSharp.Core.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.Data.dll b/src/CompilerTests/Runtime/XSharp.Data.dll index eefa909cb0..a428d2eec5 100644 Binary files a/src/CompilerTests/Runtime/XSharp.Data.dll and b/src/CompilerTests/Runtime/XSharp.Data.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.MacroCompiler.dll b/src/CompilerTests/Runtime/XSharp.MacroCompiler.dll index 837300c93b..56b7b6321f 100644 Binary files a/src/CompilerTests/Runtime/XSharp.MacroCompiler.dll and b/src/CompilerTests/Runtime/XSharp.MacroCompiler.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.RT.dll b/src/CompilerTests/Runtime/XSharp.RT.dll index 0d276733d0..1a3fd67d0e 100644 Binary files a/src/CompilerTests/Runtime/XSharp.RT.dll and b/src/CompilerTests/Runtime/XSharp.RT.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.Rdd.dll b/src/CompilerTests/Runtime/XSharp.Rdd.dll index cc0c178ff3..0590914851 100644 Binary files a/src/CompilerTests/Runtime/XSharp.Rdd.dll and b/src/CompilerTests/Runtime/XSharp.Rdd.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.VFP.dll b/src/CompilerTests/Runtime/XSharp.VFP.dll index 414cdd5210..dcdb1368af 100644 Binary files a/src/CompilerTests/Runtime/XSharp.VFP.dll and b/src/CompilerTests/Runtime/XSharp.VFP.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.VO.dll b/src/CompilerTests/Runtime/XSharp.VO.dll index 92d635b024..e49aa9088e 100644 Binary files a/src/CompilerTests/Runtime/XSharp.VO.dll and b/src/CompilerTests/Runtime/XSharp.VO.dll differ diff --git a/src/CompilerTests/Runtime/XSharp.XPP.dll b/src/CompilerTests/Runtime/XSharp.XPP.dll index e10c530e5f..388c5c99a0 100644 Binary files a/src/CompilerTests/Runtime/XSharp.XPP.dll and b/src/CompilerTests/Runtime/XSharp.XPP.dll differ diff --git a/src/CompilerTests/xSharp Tests.viproj b/src/CompilerTests/xSharp Tests.viproj index 1b93bbb98a..c298128033 100644 --- a/src/CompilerTests/xSharp Tests.viproj +++ b/src/CompilerTests/xSharp Tests.viproj @@ -60,8 +60,8 @@ ApplicationGroup = C150-C199,EBE227D6-3F55-4251-A268-C654F38F1FAF,715D7617-320E- ApplicationGroup = C800-C849,54E26745-C95C-4FDB-98B2-2AF8DB1DED34,715D7617-320E-41FF-B82F-E314D950CD23 ApplicationGroup = R800-R849,084FC9A2-9274-4770-AE44-6D078B06BA37,715D7617-320E-41FF-B82F-E314D950CD23 ApplicationGroup = C850-C899,B3CDE601-F52E-476A-9FD5-35CEE1E8C029,715D7617-320E-41FF-B82F-E314D950CD23 -ApplicationGroup = R850-R899,4913BA1E-7338-4E92-9D0A-7C3EABF0B562,715D7617-320E-41FF-B82F-E314D950CD23 ApplicationGroup = R900-R949,1BBEE766-1BC4-4BAE-9C98-BAEB270E8A0F,715D7617-320E-41FF-B82F-E314D950CD23 +ApplicationGroup = R850-R899,4913BA1E-7338-4E92-9D0A-7C3EABF0B562,1BBEE766-1BC4-4BAE-9C98-BAEB270E8A0F ApplicationGroup = C900-C949,3AF1ABF5-A5F7-479A-BB57-D226C13AA002,715D7617-320E-41FF-B82F-E314D950CD23 ApplicationGroup = NEW,B9CFE839-D401-428D-94E9-E9D21E9F772D,723E53EA-0D2C-4FC9-B86E-F050D29A49D2 ApplicationGroup = Known Incompatibilities with VO,40E29AF9-85EE-4D50-BADC-953EE318D423,723E53EA-0D2C-4FC9-B86E-F050D29A49D2 @@ -121377,7 +121377,7 @@ Target = 0 Platform = x86 Language = XSharp Runtime = CLR4 -Dialect = VO +Dialect = Core Folder = %ProjectPath%\Applications\Tester\ PrgSubFolder = \Prg ResourcesSubFolder = \Resources @@ -121414,7 +121414,6 @@ CopyToBin = 0 [Tester References] ReferenceGAC = CLR4,System,1,0,4.0.0.0 ReferenceGAC = CLR4,System.Core,1,0,4.0.0.0 -ReferenceBrowse = E:\XSharp\Dev\src\CompilerTests\Runtime\XSharp.RT.dll,1,1 [Tester Resources] [Tester Native Resources] [Tester License files] @@ -121437,7 +121436,7 @@ VO11=0 VO12=0 VO13=0 VO14=0 -VO15=1 +VO15=0 VO16=0 VO17=0 FOX1=0 @@ -121457,7 +121456,7 @@ ModernSyntax=0 NamedArgs=0 InitLocals=0 AllowOldStyleAssignments=0 -AllowDotOption=1 +AllowDotOption=0 ResponseOnly=0 [Tester Configurations] AppConfig = Debug,11111111-1111-1111-1111-111111111111 @@ -132529,9 +132528,9 @@ CopyToBin = 0 [C910 - Compiler problem reading clipper/harbour .prg file with end of file marker References] ReferenceGAC = CLR4,System,1,0,4.0.0.0 ReferenceGAC = CLR4,System.Core,1,0,4.0.0.0 -ReferenceGAC = XSharp.Core,1,0,2.6.0.0 -ReferenceGAC = XSharp.Harbour,1,0,2.6.0.0 -ReferenceGAC = XSharp.RT,1,0,2.6.0.0 +ReferenceBrowse = %ProjectPath%\Runtime\XSharp.Core.dll,1,1 +ReferenceBrowse = %ProjectPath%\Runtime\XSharp.RT.dll,1,1 +ReferenceBrowse = %ProjectPath%\Runtime\XSharp.Harbour.dll,1,1 [C910 - Compiler problem reading clipper/harbour .prg file with end of file marker Resources] [C910 - Compiler problem reading clipper/harbour .prg file with end of file marker Native Resources] [C910 - Compiler problem reading clipper/harbour .prg file with end of file marker License files] @@ -133699,7 +133698,7 @@ AppConfig = Release,22222222-2222-2222-2222-222222222222 Optimize=0 ENDApplication = C913 - More VFP UDC tests -ApplicationGroup = B9CFE839-D401-428D-94E9-E9D21E9F772D +ApplicationGroup = 1BBEE766-1BC4-4BAE-9C98-BAEB270E8A0F ; ************** APPLICATION R925 - Namespace - Property resolution ************* Application = R925 - Namespace - Property resolution IDEVersion = 1.06 @@ -133940,7 +133939,7 @@ AppConfig = Release,22222222-2222-2222-2222-222222222222 Optimize=0 ENDApplication = R926 - TextMerge and function parameters -ApplicationGroup = B9CFE839-D401-428D-94E9-E9D21E9F772D +ApplicationGroup = A95A4D23-3574-40FD-B873-22D28ACCA212 ; ************** APPLICATION R927 - VFP Error line number ************* Application = R927 - VFP Error line number IDEVersion = 1.06 diff --git a/src/Runtime/XSharp.Rdd/FlexFile/FlexRDD.xh b/src/Runtime/XSharp.Rdd/FlexFile/FlexRDD.xh index 2e453c632b..a15a4d9676 100644 --- a/src/Runtime/XSharp.Rdd/FlexFile/FlexRDD.xh +++ b/src/Runtime/XSharp.Rdd/FlexFile/FlexRDD.xh @@ -81,6 +81,9 @@ BEGIN NAMESPACE XSharp.RDD IF SELF:_ReadOnly SELF:_dbfError(ERDD.READONLY, XSharp.Gencode.EG_READONLY ) ENDIF + IF SELF:EoF + RETURN TRUE + ENDIF SELF:ForceRel() IF SELF:_readRecord() // GoHot() must be called first because this saves the current index values