Browse Source

Merged SD 2.1 r2376:2406 to trunk.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2407 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
c6f602e616
  1. 1
      src/AddIns/BackendBindings/Boo/Boo.InterpreterAddIn/Project/CodeCompletionData.boo
  2. 14
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin
  3. 18
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs
  4. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
  5. 1
      src/AddIns/BackendBindings/WixBinding/Project/Templates/EmptyWixProject.xpt
  6. 1
      src/AddIns/BackendBindings/WixBinding/Project/Templates/WixProject.xpt
  7. 6
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
  8. 42
      src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs
  9. 2
      src/Libraries/DockPanel_Src/patchnotes.txt
  10. 73
      src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.Build.CSharp.targets
  11. 20
      src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.Build.VisualBasic.targets
  12. 2
      src/Libraries/ICSharpCode.TextEditor/Project/Resources/HTML-Mode.xshd
  13. 25
      src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
  14. 23
      src/Main/Base/Project/Src/Project/MSBuildEngine.cs
  15. 4
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Engine/TextIterator/ForwardTextIterator.cs
  16. 47
      src/Main/Base/Test/ForwardIteratorWithEmptyTextBufferTestFixture.cs
  17. 1
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  18. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CecilReader.cs
  19. 10
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs
  20. 14
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/SearchClassReturnType.cs

1
src/AddIns/BackendBindings/Boo/Boo.InterpreterAddIn/Project/CodeCompletionData.boo

@ -118,6 +118,7 @@ internal class GlobalsCompletionDataProvider(ICSharpCode.SharpDevelop.DefaultEdi @@ -118,6 +118,7 @@ internal class GlobalsCompletionDataProvider(ICSharpCode.SharpDevelop.DefaultEdi
override def GenerateCompletionData(fileName as string, textArea as TextArea, charTyped as System.Char) as (ICompletionData):
globals = _interpreter.GetGlobals()
return array(ICompletionData, 0) if globals is null
data = array(ICompletionData, len(globals))
for index, key in enumerate(globals):
value = null #_interpreter.GetValue(key) TODO

14
src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.addin

@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
<Import assembly = ":ICSharpCode.SharpDevelop"/>
</Runtime>
<!-- Add the "Boo" entry to the Open Project Dialog -->
<Path name = "/SharpDevelop/Workbench/Combine/FileFilter">
<FileFilter id = "BooProject"
insertbefore="AllFiles"
@ -22,7 +23,8 @@ @@ -22,7 +23,8 @@
class = "ICSharpCode.SharpDevelop.Project.LoadProject"
extensions = "*.booproj"/>
</Path>
<!-- Add the "Boo" entry to the Open File Dialog -->
<Path name = "/SharpDevelop/Workbench/FileFilter">
<FileFilter id = "Boo"
insertbefore="AllFiles"
@ -30,11 +32,17 @@ @@ -30,11 +32,17 @@
extensions = "*.boo"/>
</Path>
<!-- Makes SharpDevelop show the text 'Compiling ProjectName...' whenever an MSBuild task named 'booc' is started -->
<Path name = "/SharpDevelop/MSBuildEngine/CompileTaskNames">
<!-- Makes SharpDevelop show the text 'Compiling ProjectName...' when the task is started -->
<String id="booc" text = "booc"/>
</Path>
<!-- Register path to Boo.Microsoft.Build.targets for MSBuild engine. -->
<!-- Boo.Microsoft.Build.targets are in the AddIn directory -->
<Path name = "/SharpDevelop/MSBuildEngine/AdditionalProperties">
<String id="BooBinPath" text = "${AddInPath:ICSharpCode.BooBinding}"/>
</Path>
<Path name = "/AddIns/FileTypeRegisterer/FileTypes">
<FiletypeAssociation
id = "booproj"
@ -136,7 +144,7 @@ @@ -136,7 +144,7 @@
projectfileextension = ".booproj"
class = "Grunwald.BooBinding.BooLanguageBinding" />
</Path>
<Path name = "/SharpDevelop/Workbench/MainMenu/Tools/ConvertCode">
<ComplexCondition action = "Disable">
<Or>

18
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooProject.cs

@ -18,17 +18,11 @@ namespace Grunwald.BooBinding @@ -18,17 +18,11 @@ namespace Grunwald.BooBinding
{
public class BooProject : CompilableProject
{
static bool initialized = false;
public static readonly string BooBinPath = Path.GetDirectoryName(typeof(BooProject).Assembly.Location);
void Init()
{
reparseCodeSensitiveProperties.Add("Ducky");
if (!initialized) {
initialized = true;
MSBuildEngine.MSBuildProperties.Add("BooBinPath", BooBinPath);
}
}
public override string Language {
@ -89,19 +83,19 @@ namespace Grunwald.BooBinding @@ -89,19 +83,19 @@ namespace Grunwald.BooBinding
protected override ParseProjectContent CreateProjectContent()
{
ParseProjectContent pc = base.CreateProjectContent();
ReferenceProjectItem systemItem = new ReferenceProjectItem(this, "System");
pc.AddReferencedContent(ParserService.GetProjectContentForReference(systemItem));
ReferenceProjectItem booLangItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Builtins).Assembly.Location);
pc.AddReferencedContent(ParserService.GetProjectContentForReference(booLangItem));
if (BooCompilerPC == null) {
ReferenceProjectItem booCompilerItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Compiler.AbstractAstAttribute).Assembly.Location);
BooCompilerPC = ParserService.GetProjectContentForReference(booCompilerItem);
}
if (BooUsefulPC == null) {
ReferenceProjectItem booUsefulItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Useful.Attributes.SingletonAttribute).Assembly.Location);
BooUsefulPC = ParserService.GetProjectContentForReference(booUsefulItem);
BooUsefulPC = ParserService.GetRegistryForReference(booUsefulItem).GetProjectContentForReference("Boo.Lang.Useful", booUsefulItem.Include);
}
ParseProjectContent pc = base.CreateProjectContent();
ReferenceProjectItem systemItem = new ReferenceProjectItem(this, "System");
pc.AddReferencedContent(ParserService.GetProjectContentForReference(systemItem));
ReferenceProjectItem booLangItem = new ReferenceProjectItem(this, typeof(Boo.Lang.Builtins).Assembly.Location);
pc.AddReferencedContent(ParserService.GetProjectContentForReference(booLangItem));
pc.DefaultImports = new DefaultUsing(pc);
pc.DefaultImports.Usings.Add("Boo.Lang");
pc.DefaultImports.Usings.Add("Boo.Lang.Builtins");

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs

@ -351,7 +351,7 @@ namespace VBNetBinding.FormattingStrategy @@ -351,7 +351,7 @@ namespace VBNetBinding.FormattingStrategy
if (Regex.IsMatch(texttoreplace.Trim(), statement.StartRegex, RegexOptions.IgnoreCase)) {
string indentation = GetIndentation(textArea, lineNr - 1);
if (isEndStatementNeeded(textArea, ref statement, lineNr)) {
textArea.Document.Insert(textArea.Caret.Offset, terminator + indentation + statement.EndStatement);
textArea.Document.Replace(curLine.Offset, curLine.Length, terminator + indentation + statement.EndStatement);
++undoCount;
}
for (int i = 0; i < statement.IndentPlus; i++) {

1
src/AddIns/BackendBindings/WixBinding/Project/Templates/EmptyWixProject.xpt

@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
Name=""
Language="1033"
Version="1.0.0.0"
UpgradeCode="${GUID}"
Manufacturer="">
<Package Id="${GUID}"
Description=""

1
src/AddIns/BackendBindings/WixBinding/Project/Templates/WixProject.xpt

@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
Name="Your Application"
Language="1033"
Version="1.0.0.0"
UpgradeCode="${GUID}"
Manufacturer="Your Company">
<Package Id="${GUID}"
Description="#Description"

6
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

@ -153,6 +153,12 @@ namespace ICSharpCode.XmlEditor @@ -153,6 +153,12 @@ namespace ICSharpCode.XmlEditor
}
}
public override bool IsReadOnly {
get {
return xmlEditor.IsReadOnly;
}
}
/// <summary>
/// Loads the string content into the view.
/// </summary>

42
src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs

@ -23,6 +23,9 @@ namespace ICSharpCode.Svn.Commands @@ -23,6 +23,9 @@ namespace ICSharpCode.Svn.Commands
/// </summary>
public sealed class RegisterEventsCommand : AbstractCommand
{
const int CannotDeleteFileWithLocalModifications = 195006;
const int CannotDeleteFileNotUnderVersionControl = 200005;
public override void Run()
{
FileService.FileRemoving += FileRemoving;
@ -65,12 +68,12 @@ namespace ICSharpCode.Svn.Commands @@ -65,12 +68,12 @@ namespace ICSharpCode.Svn.Commands
void FileCreated(object sender, FileEventArgs e)
{
if (e.IsDirectory) return;
if (!AddInOptions.AutomaticallyAddFiles) return;
if (!Path.IsPathRooted(e.FileName)) return;
string fullName = Path.GetFullPath(e.FileName);
if (!CanBeVersionControlledFile(fullName)) return;
if (e.IsDirectory) return;
try {
Status status = SvnClient.Instance.Client.SingleStatus(fullName);
switch (status.TextStatus) {
@ -91,7 +94,9 @@ namespace ICSharpCode.Svn.Commands @@ -91,7 +94,9 @@ namespace ICSharpCode.Svn.Commands
if (e.Cancel) return;
string fullName = Path.GetFullPath(e.FileName);
if (!CanBeVersionControlledFile(fullName)) return;
if (e.IsDirectory) {
// show "cannot delete directories" message even if
// AutomaticallyDeleteFiles (see below) is off!
Status status = SvnClient.Instance.Client.SingleStatus(fullName);
@ -100,12 +105,45 @@ namespace ICSharpCode.Svn.Commands @@ -100,12 +105,45 @@ namespace ICSharpCode.Svn.Commands
case StatusKind.Unversioned:
break;
default:
MessageService.ShowMessage("SubversionAddIn cannot delete directories, the directory is only removed from the project.");
// must be done using the subversion client, even if
// AutomaticallyDeleteFiles is off, because we don't want to corrupt the
// working copy
e.OperationAlreadyDone = true;
try {
SvnClient.Instance.Client.Delete(new string[] { fullName }, false);
} catch (SvnClientException ex) {
LoggingService.Warn("SVN Error code " + ex.ErrorCode);
LoggingService.Warn(ex);
if (ex.ErrorCode == CannotDeleteFileWithLocalModifications
|| ex.ErrorCode == CannotDeleteFileNotUnderVersionControl)
{
if (MessageService.ShowCustomDialog("Delete directory",
"Error deleting " + fullName + ":\n" +
ex.Message, 0, 1,
"Force delete", "${res:Global.CancelButtonText}")
== 0)
{
try {
SvnClient.Instance.Client.Delete(new string[] { fullName }, true);
} catch (SvnClientException ex2) {
e.Cancel = true;
MessageService.ShowError(ex2.Message);
}
} else {
e.Cancel = true;
}
} else {
e.Cancel = true;
MessageService.ShowError(ex.Message);
}
}
break;
}
return;
}
// not a directory, but a file:
if (!AddInOptions.AutomaticallyDeleteFiles) return;
try {
Status status = SvnClient.Instance.Client.SingleStatus(fullName);

2
src/Libraries/DockPanel_Src/patchnotes.txt

@ -11,6 +11,8 @@ Patch #2: @@ -11,6 +11,8 @@ Patch #2:
Fixed CREATESTRUCT, MDICREATESTRUCT and WINDOWPOS P/Invoke structure declarations:
use IntPtr instead of int - we have to use a pointer-size integers here for 64-bit systems
Committed in revision 1335.
Reported to SF: http://sourceforge.net/tracker/index.php?func=detail&aid=1438642&group_id=110642&atid=659401
The fix was accepted and will be in the next release of the library.
Patch #3:
Activate the autohide pad explicitly - in DockContentHandler.cs

73
src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.Build.CSharp.targets

@ -7,46 +7,50 @@ @@ -7,46 +7,50 @@
to work around a problem in Microsoft's C# targets
-->
<SharpDevelopTargetFrameworkVersion>$(TargetFrameworkVersion)</SharpDevelopTargetFrameworkVersion>
<SharpDevelopTargetFrameworkClass>unknown</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v1.0' ">
<CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.0.3705</CscToolPath>
<SharpDevelopUse1xCompiler>true</SharpDevelopUse1xCompiler>
<SharpDevelopUseMicrosoftFramework>true</SharpDevelopUseMicrosoftFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v1.1' ">
<CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath>
<SharpDevelopUse1xCompiler>true</SharpDevelopUse1xCompiler>
<SharpDevelopUseMicrosoftFramework>true</SharpDevelopUseMicrosoftFramework>
<!-- Work around MsBuild problem: Microsoft.CSharp.targets adds NoWarn entries that -->
<!-- don't exist in v1.1 when version is set to anything else than v1.0 -->
<PropertyGroup Condition=" ('$(SharpDevelopTargetFrameworkVersion)' == 'v1.0') or ($(SharpDevelopTargetFrameworkVersion) == 'v1.1') ">
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(SharpDevelopUse1xCompiler)' == 'true' ">
<!-- TargetFrameworkVersion must be v1.0 both for .NET 1.0 and .NET 1.1 - otherwise Microsoft.CSharp.targets adds invalid NoWarn entries -->
<CscToolPath Condition="'$(SharpDevelopTargetFrameworkVersion)' == 'v1.0'">$(SystemRoot)\Microsoft.NET\Framework\v1.0.3705</CscToolPath>
<CscToolPath Condition="'$(SharpDevelopTargetFrameworkVersion)' == 'v1.1'">$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath>
<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
<ErrorReport/>
<PlatformTarget/>
<SharpDevelopTargetFrameworkClass>v1</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v2.0' ">
<SharpDevelopUseMicrosoftFramework>true</SharpDevelopUseMicrosoftFramework>
<PropertyGroup Condition=" ('$(SharpDevelopTargetFrameworkVersion)' == 'v2.0' or '$(SharpDevelopTargetFrameworkVersion)' == '') ">
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<SharpDevelopTargetFrameworkClass>v2</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'CF 1.0' ">
<PropertyGroup Condition=" '$(SharpDevelopTargetFrameworkVersion)' == 'CF 1.0' ">
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
<SharpDevelopUseCompactFramework>true</SharpDevelopUseCompactFramework>
<SharpDevelopTargetFrameworkClass>CF</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'CF 2.0' ">
<PropertyGroup Condition=" '$(SharpDevelopTargetFrameworkVersion)' == 'CF 2.0' ">
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<SharpDevelopUseCompactFramework>true</SharpDevelopUseCompactFramework>
<SharpDevelopTargetFrameworkClass>CF</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<PropertyGroup Condition=" ('$(SharpDevelopTargetFrameworkVersion)' == 'Mono v1.1') or ('$(SharpDevelopTargetFrameworkVersion)' == 'Mono v2.0') ">
<SharpDevelopTargetFrameworkClass>Mono</SharpDevelopTargetFrameworkClass>
</PropertyGroup>
<Target Name="Build" Condition="'$(SharpDevelopTargetFrameworkClass)' == 'unknown'">
<Error Text="Unknown target framework version '$(SharpDevelopTargetFrameworkVersion)'."/>
</Target>
<!-- Use Microsoft's C# standard targets -->
<Import Condition=" '$(SharpDevelopUseMicrosoftFramework)' == 'true' " Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Condition=" ('$(SharpDevelopTargetFrameworkClass)' == 'v1') or ('$(SharpDevelopTargetFrameworkClass)' == 'v2') "
Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- Override properties created by Microsoft.CSharp.targets -->
<PropertyGroup Condition=" '$(SharpDevelopUse1xCompiler)' == 'true' ">
<PropertyGroup Condition=" '$(SharpDevelopTargetFrameworkClass)' == 'v1' ">
<AssemblySearchPaths>
{CandidateAssemblyFiles};
$(ReferencePath);
@ -60,7 +64,7 @@ @@ -60,7 +64,7 @@
<TargetFrameworkDirectory>$(CscToolPath)</TargetFrameworkDirectory>
</PropertyGroup>
<ItemGroup Condition=" '$(SharpDevelopUse1xCompiler)' == 'true' ">
<ItemGroup Condition=" '$(SharpDevelopTargetFrameworkClass)' == 'v1' ">
<TargetFrameworkDirectoryItem Include="$(CscToolPath)">
<InProject>false</InProject>
</TargetFrameworkDirectoryItem>
@ -68,16 +72,16 @@ @@ -68,16 +72,16 @@
<!-- GetFrameworkPaths overwrites TargetFrameworkDirectory, so modify it -->
<!-- to be inactive if SharpDevelopUse1xCompiler is set. -->
<Target Name="GetFrameworkPaths" DependsOnTargets="$(GetFrameworkPathsDependsOn)" Condition=" '$(SharpDevelopUseMicrosoftFramework)' == 'true' ">
<Error Condition=" ('$(SharpDevelopUse1xCompiler)' == 'true') And !Exists('$(CscToolPath)\Csc.exe') "
<Target Name="GetFrameworkPaths" DependsOnTargets="$(GetFrameworkPathsDependsOn)" Condition=" ('$(SharpDevelopTargetFrameworkClass)' == 'v1') or ('$(SharpDevelopTargetFrameworkClass)' == 'v2') ">
<Error Condition=" ('$(SharpDevelopTargetFrameworkClass)' == 'v1') And !Exists('$(CscToolPath)\Csc.exe') "
Text="Could not find the C# compiler in $(CscToolPath)."/>
<GetFrameworkPath Condition=" '$(SharpDevelopUse1xCompiler)' != 'true' ">
<GetFrameworkPath Condition=" '$(SharpDevelopTargetFrameworkClass)' != 'v1' ">
<Output TaskParameter="Path" PropertyName="TargetFrameworkDirectory"/>
<Output TaskParameter="Path" ItemName="TargetFrameworkDirectoryItem"/>
</GetFrameworkPath>
<GetFrameworkSDKPath Condition=" '$(SharpDevelopUse1xCompiler)' != 'true' ">
<GetFrameworkSDKPath Condition=" '$(SharpDevelopTargetFrameworkClass)' != 'v1' ">
<Output TaskParameter="Path" PropertyName="TargetFrameworkSDKDirectory"/>
<Output TaskParameter="Path" ItemName="TargetFrameworkSDKDirectoryItem"/>
</GetFrameworkSDKPath>
@ -87,15 +91,24 @@ @@ -87,15 +91,24 @@
<Import Condition=" '$(TargetFrameworkVersion)' == 'Mono v1.1' " Project="$(SharpDevelopBinPath)\SharpDevelop.Build.Mono.Mcs.targets"/>
<Import Condition=" '$(TargetFrameworkVersion)' == 'Mono v2.0' " Project="$(SharpDevelopBinPath)\SharpDevelop.Build.Mono.Gmcs.targets"/>
<!-- Compact framework default platform values -->
<PropertyGroup Condition=" '$(SharpDevelopUseCompactFramework)' == 'true' ">
<!-- Compact framework property adjustments: -->
<!-- When StdLib is not set, set it to true and add reference to mscorlib -->
<!-- Set PlatformFamilyName and PlatformID if required -->
<PropertyGroup Condition=" '$(SharpDevelopTargetFrameworkClass)' == 'CF' ">
<PlatformFamilyName Condition=" '$(PlatformFamilyName)' == '' ">PocketPC</PlatformFamilyName>
<PlatformID Condition=" '$(PlatformID)' == '' ">WinCE</PlatformID>
<PlatformID Condition=" '$(PlatformID)' == '' ">WinCE</PlatformID>
<SharpDevelopAddReferenceToCompactMscorlib Condition="'$(NoStdLib)' == ''">true</SharpDevelopAddReferenceToCompactMscorlib>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
</PropertyGroup>
<ItemGroup Condition=" '$(SharpDevelopAddReferenceToCompactMscorlib)' == 'true' ">
<Reference Include="mscorlib"/>
</ItemGroup>
<!-- Compact framework imports -->
<Import Condition=" ('$(TargetFrameworkVersion)' == 'v1.0') And ('$(SharpDevelopUseCompactFramework)' == 'true') "
<Import Condition=" '$(SharpDevelopTargetFrameworkVersion)' == 'CF 1.0' "
Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.v1.targets"/>
<Import Condition=" ('$(TargetFrameworkVersion)' == 'v2.0') And ('$(SharpDevelopUseCompactFramework)' == 'true') "
<Import Condition=" '$(SharpDevelopTargetFrameworkVersion)' == 'CF 2.0' "
Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets"/>
</Project>

20
src/Libraries/ICSharpCode.Build.Tasks/Project/SharpDevelop.Build.VisualBasic.targets

@ -28,8 +28,9 @@ @@ -28,8 +28,9 @@
<PlatformTarget/>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'v2.0' ">
<SharpDevelopUseMicrosoftFramework>true</SharpDevelopUseMicrosoftFramework>
<PropertyGroup Condition=" ('$(TargetFrameworkVersion)' == 'v2.0') or ('$(TargetFrameworkVersion)' == '') ">
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<SharpDevelopUseMicrosoftFramework>true</SharpDevelopUseMicrosoftFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFrameworkVersion)' == 'CF 1.0' ">
@ -157,12 +158,21 @@ @@ -157,12 +158,21 @@
<Import Condition=" '$(TargetFrameworkVersion)' == 'Mono v1.1' " Project="$(SharpDevelopBinPath)\SharpDevelop.Build.Mono.Mbas.targets"/>
<Import Condition=" '$(TargetFrameworkVersion)' == 'Mono v2.0' " Project="$(SharpDevelopBinPath)\SharpDevelop.Build.Mono.Mbas.targets"/>
<!-- Compact framework default platform values -->
<PropertyGroup Condition=" '$(SharpDevelopUseCompactFramework)' == 'true' ">
<!-- Compact framework property adjustments: -->
<!-- When StdLib is not set, set it to true and add reference to mscorlib -->
<!-- Set PlatformFamilyName and PlatformID if required -->
<PropertyGroup Condition=" '$(SharpDevelopTargetFrameworkClass)' == 'CF' ">
<PlatformFamilyName Condition=" '$(PlatformFamilyName)' == '' ">PocketPC</PlatformFamilyName>
<PlatformID Condition=" '$(PlatformID)' == '' ">WinCE</PlatformID>
<PlatformID Condition=" '$(PlatformID)' == '' ">WinCE</PlatformID>
<SharpDevelopAddReferenceToCompactMscorlib Condition="'$(NoStdLib)' == ''">true</SharpDevelopAddReferenceToCompactMscorlib>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
</PropertyGroup>
<ItemGroup Condition=" '$(SharpDevelopAddReferenceToCompactMscorlib)' == 'true' ">
<Reference Include="mscorlib"/>
</ItemGroup>
<!-- Compact framework imports -->
<Import Condition=" ('$(TargetFrameworkVersion)' == 'v1.0') And ('$(SharpDevelopUseCompactFramework)' == 'true') "
Project="$(MSBuildBinPath)\Microsoft.CompactFramework.VisualBasic.v1.targets"/>

2
src/Libraries/ICSharpCode.TextEditor/Project/Resources/HTML-Mode.xshd

@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
<End>&lt;/script&gt;</End>
</Span>
<Span name="UnknownScriptTag" bold="false" italic="false" color="SpringGreen" stopateol="false">
<Begin>&lt;script</Begin>
<Begin>&lt;script@C</Begin>
<End>&lt;/script&gt;</End>
</Span>
<Span name="HtmlTag" rule="HtmlTagSet" bold="false" italic="false" color="DarkMagenta" stopateol="false">

25
src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs

@ -820,9 +820,28 @@ namespace ICSharpCode.SharpDevelop.Project @@ -820,9 +820,28 @@ namespace ICSharpCode.SharpDevelop.Project
internal static void InitializeMSBuildProject(MSBuild.Project project)
{
project.GlobalProperties.SetProperty("BuildingInsideVisualStudio", "true");
foreach (KeyValuePair<string, string> pair in MSBuildEngine.MSBuildProperties) {
project.GlobalProperties.SetProperty(pair.Key, pair.Value, true);
InitializeMSBuildProjectProperties(project.GlobalProperties);
}
/// <summary>
/// Set compilation properties (MSBuildProperties and AddInTree/AdditionalPropertiesPath).
/// </summary>
internal static void InitializeMSBuildProjectProperties(MSBuild.BuildPropertyGroup propertyGroup)
{
foreach (KeyValuePair<string, string> entry in MSBuildEngine.MSBuildProperties) {
propertyGroup.SetProperty(entry.Key, entry.Value);
}
// re-load these properties from AddInTree every time because "text" might contain
// SharpDevelop properties resolved by the StringParser (e.g. ${property:FxCopPath})
AddInTreeNode node = AddInTree.GetTreeNode(MSBuildEngine.AdditionalPropertiesPath, false);
if (node != null) {
foreach (Codon codon in node.Codons) {
object item = codon.BuildItem(null, new System.Collections.ArrayList());
if (item != null) {
bool escapeValue = !codon.Properties.Get("text", "").Contains("$(");
propertyGroup.SetProperty(codon.Id, item.ToString(), escapeValue);
}
}
}
}

23
src/Main/Base/Project/Src/Project/MSBuildEngine.cs

@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Project
const string CompileTaskNamesPath = "/SharpDevelop/MSBuildEngine/CompileTaskNames";
const string AdditionalTargetFilesPath = "/SharpDevelop/MSBuildEngine/AdditionalTargetFiles";
const string AdditionalLoggersPath = "/SharpDevelop/MSBuildEngine/AdditionalLoggers";
const string AdditionalPropertiesPath = "/SharpDevelop/MSBuildEngine/AdditionalProperties";
internal const string AdditionalPropertiesPath = "/SharpDevelop/MSBuildEngine/AdditionalProperties";
/// <summary>
/// Gets a list of the task names that cause a "Compiling ..." log message.
@ -69,6 +69,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -69,6 +69,7 @@ namespace ICSharpCode.SharpDevelop.Project
MSBuildProperties = new SortedList<string, string>();
MSBuildProperties.Add("SharpDevelopBinPath", Path.GetDirectoryName(typeof(MSBuildEngine).Assembly.Location));
MSBuildProperties.Add("BuildingInsideVisualStudio", "true");
}
#region Properties
@ -373,21 +374,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -373,21 +374,9 @@ namespace ICSharpCode.SharpDevelop.Project
internal Engine CreateEngine()
{
Engine engine = MSBuildInternals.CreateEngine();
foreach (KeyValuePair<string, string> entry in MSBuildProperties) {
engine.GlobalProperties.SetProperty(entry.Key, entry.Value);
}
// re-load these properties from AddInTree every time because "text" might contain
// SharpDevelop properties resolved by the StringParser (e.g. ${property:FxCopPath})
AddInTreeNode node = AddInTree.GetTreeNode(AdditionalPropertiesPath, false);
if (node != null) {
foreach (Codon codon in node.Codons) {
object item = codon.BuildItem(null, new System.Collections.ArrayList());
if (item != null) {
bool escapeValue = !codon.Properties.Get("text", "").Contains("$(");
engine.GlobalProperties.SetProperty(codon.Id, item.ToString(), escapeValue);
}
}
}
MSBuildBasedProject.InitializeMSBuildProjectProperties(engine.GlobalProperties);
if (options.AdditionalProperties != null) {
foreach (KeyValuePair<string, string> entry in options.AdditionalProperties) {
engine.GlobalProperties.SetProperty(entry.Key, entry.Value);
@ -398,8 +387,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -398,8 +387,6 @@ namespace ICSharpCode.SharpDevelop.Project
engine.GlobalProperties.SetProperty("SolutionFileName", Path.GetFileName(solution.FileName));
engine.GlobalProperties.SetProperty("SolutionPath", solution.FileName);
engine.GlobalProperties.SetProperty("BuildingInsideVisualStudio", "true");
return engine;
}

4
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Engine/TextIterator/ForwardTextIterator.cs

@ -85,6 +85,10 @@ namespace SearchAndReplace @@ -85,6 +85,10 @@ namespace SearchAndReplace
switch (state) {
case TextIteratorState.Resetted:
if (textBuffer.Length == 0) {
state = TextIteratorState.Done;
return false;
}
Position = endOffset;
state = TextIteratorState.Iterating;
return true;

47
src/Main/Base/Test/ForwardIteratorWithEmptyTextBufferTestFixture.cs

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using ICSharpCode.SharpDevelop.Tests.Utils;
using ICSharpCode.TextEditor.Document;
using SearchAndReplace;
using NUnit.Framework;
namespace ICSharpCode.SharpDevelop.Tests
{
/// <summary>
/// The fix for SD2-857 highlighted another bug (SD2-1312) in the
/// ForwardTextIterator where it does not handle the case where
/// the ITextBufferStrategy has a length of zero.
/// </summary>
[TestFixture]
public class ForwardIteratorWithEmptyTextBufferTestFixture
{
ForwardTextIterator forwardTextIterator;
[SetUp]
public void SetUp()
{
// Create the document to be iterated through.
MockDocument doc = new MockDocument();
StringTextBufferStrategy textBufferStrategy = new StringTextBufferStrategy();
doc.TextBufferStrategy = textBufferStrategy;
ProvidedDocumentInformation docInfo = new ProvidedDocumentInformation(doc,
@"C:\Temp\test.txt",
0);
// Create the forward iterator.
forwardTextIterator = new ForwardTextIterator(docInfo);
}
[Test]
public void CannotMoveAhead()
{
Assert.IsFalse(forwardTextIterator.MoveAhead(1));
}
}
}

1
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -54,6 +54,7 @@ @@ -54,6 +54,7 @@
<Compile Include="CSharpExpressionFinderTests.cs" />
<Compile Include="ExceptionClassOverridesTestFixture.cs" />
<Compile Include="FindNextWithCursorAtEndTestFixture.cs" />
<Compile Include="ForwardIteratorWithEmptyTextBufferTestFixture.cs" />
<Compile Include="ForwardTextIteratorPositionIsEndOffsetTestFixture.cs" />
<Compile Include="NRefactoryResolverTests.cs" />
<Compile Include="CollectionClassOverridesTestFixture.cs" />

4
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CecilReader.cs

@ -256,6 +256,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -256,6 +256,7 @@ namespace ICSharpCode.SharpDevelop.Dom
DefaultField f = new DefaultField(this, field.Name);
f.Modifiers = TranslateModifiers(field);
f.ReturnType = CreateType(this.ProjectContent, this, field.FieldType);
AddAttributes(CompilationUnit.ProjectContent, f.Attributes, field.CustomAttributes);
Fields.Add(f);
}
}
@ -277,6 +278,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -277,6 +278,7 @@ namespace ICSharpCode.SharpDevelop.Dom
p.IsIndexer = true;
}
AddParameters(p, property.Parameters);
AddAttributes(CompilationUnit.ProjectContent, p.Attributes, property.CustomAttributes);
Properties.Add(p);
}
}
@ -290,6 +292,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -290,6 +292,7 @@ namespace ICSharpCode.SharpDevelop.Dom
e.Modifiers = TranslateModifiers(eventDef);
}
e.ReturnType = CreateType(this.ProjectContent, this, eventDef.EventType);
AddAttributes(CompilationUnit.ProjectContent, e.Attributes, eventDef.CustomAttributes);
Events.Add(e);
}
}
@ -320,6 +323,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -320,6 +323,7 @@ namespace ICSharpCode.SharpDevelop.Dom
}
m.ReturnType = CreateType(this.ProjectContent, m, method.ReturnType.ReturnType);
AddAttributes(CompilationUnit.ProjectContent, m.Attributes, method.CustomAttributes);
if (this.ClassType == ClassType.Interface) {
m.Modifiers = ModifierEnum.Public | ModifierEnum.Abstract;
} else {

10
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/ConstructedReturnType.cs

@ -81,17 +81,21 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -81,17 +81,21 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
/// <summary>
/// Gets if <paramref name="t"/> is/contains a generic return type referring to a class type parameter.
/// </summary>
bool CheckReturnType(IReturnType t)
{
if (t == null) {
return false;
}
if (t.IsGenericReturnType) {
return t.CastToGenericReturnType().TypeParameter.Method == null;
} else if (t.IsArrayReturnType) {
return CheckReturnType(t.CastToArrayReturnType().ArrayElementType);
} else if (t.IsConstructedReturnType) {
foreach (IReturnType para in t.CastToConstructedReturnType().TypeArguments) {
if (para != null) {
if (CheckReturnType(para)) return true;
}
if (CheckReturnType(para)) return true;
}
return false;
} else {

14
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/SearchClassReturnType.cs

@ -108,14 +108,16 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -108,14 +108,16 @@ namespace ICSharpCode.SharpDevelop.Dom
lock (cache) {
if (cache.TryGetValue(this, out type))
return type;
try {
isSearching = true;
type = pc.SearchType(new SearchTypeRequest(name, typeParameterCount, declaringClass, caretLine, caretColumn)).Result;
}
try {
isSearching = true;
type = pc.SearchType(new SearchTypeRequest(name, typeParameterCount, declaringClass, caretLine, caretColumn)).Result;
lock (cache) {
cache[this] = type;
return type;
} finally {
isSearching = false;
}
return type;
} finally {
isSearching = false;
}
}
}

Loading…
Cancel
Save