Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@xamarin.com>2016-02-11 12:18:58 +0300
committerVsevolod Kukol <sevoku@xamarin.com>2016-02-11 12:18:58 +0300
commita30b1a118be58589262d357026643fa4cd758fe4 (patch)
tree7f9dd429f1c6da7b346a21e9bdfc94cfb54e8cd4
parent38dad12bfde5d7b4464128c90ce671c101875180 (diff)
parent7efe2abe40ba288e7b560660da2c5983d85310c6 (diff)
Merge remote-tracking branch 'origin/master' into roslyn-dark-skin
-rwxr-xr-xconfigure11
-rw-r--r--main/Makefile.include3
m---------main/external/RefactoringEssentials0
m---------main/external/fsharpbinding14
m---------main/external/roslyn0
-rw-r--r--main/po/uk.po2762
-rw-r--r--main/src/addins/AspNet/Commands/AddViewDialog.cs18
-rw-r--r--main/src/addins/AspNet/Commands/GoToControllerCommandHandler.cs66
-rw-r--r--main/src/addins/AspNet/Projects/AspNetProjectTemplateWizardPage.cs2
-rw-r--r--main/src/addins/AspNet/Razor/IRazorCompletionBuilder.cs2
-rw-r--r--main/src/addins/AspNet/Razor/RazorCSharpEditorExtension.cs7
-rw-r--r--main/src/addins/CSharpBinding/AspNet/RazorCSharpCompletionBuilder.cs4
-rw-r--r--main/src/addins/CSharpBinding/CSharpBinding.addin.xml13
-rw-r--r--main/src/addins/CSharpBinding/CSharpBinding.csproj3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynSymbolCompletionData.cs20
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs18
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs6
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFeaturesTextEditorExtension.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFindReferencesProvider.cs278
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpJumpToDeclarationHandler.cs45
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs71
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs15
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs19
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/CSharpNUnitSourceCodeLocationFinder.cs77
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs5
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs23
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/SignatureMarkupCreator.cs5
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs21
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/SelectorView.cs5
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxLoader.cs2
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs3
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs3
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs3
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs5
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesProjectNodeBuilderExtension.cs12
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/UpdatedPackagesInSolutionTests.cs31
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs8
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInProject.cs7
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/AssemblyInfo.cs1
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticRunner.cs19
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml12
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/FindReferencesProvider.cs42
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/JumpToDeclarationHandler.cs37
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs125
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj4
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs34
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs90
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs9
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs33
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Commands/WebReferenceCommandHandler.cs81
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs148
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WS/WebServiceDiscoveryResultWS.cs110
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/DiscoveryProtocol.cs2
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebReferenceItem.cs6
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebServiceDiscoveryResult.cs13
-rw-r--r--main/src/addins/NUnit/Gui/TestNodeBuilder.cs26
-rw-r--r--main/src/addins/NUnit/MonoDevelop.NUnit.csproj1
-rw-r--r--main/src/addins/NUnit/MonoDevelopNUnit.addin.xml4
-rw-r--r--main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs28
-rw-r--r--main/src/addins/NUnit/Services/NUnitProjectTestSuite.cs40
-rw-r--r--main/src/addins/NUnit/Services/NUnitSourceCodeLocationFinder.cs71
-rw-r--r--main/src/addins/VBNetBinding/Project/VBProjectExtension.cs1
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs11
-rw-r--r--main/src/addins/WindowsPlatform/WindowsAPICodePack/Shell/CommonFileDialogs/CommonFileDialog.cs11
-rw-r--r--main/src/addins/Xml/MonoDevelop.Xml.csproj4
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/DeleteActions.cs5
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/MiscActions.cs17
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/MonoTextEditor.cs2
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs32
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/MultipleOperationConsoles.cs480
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs12
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs33
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Logging/AssertLoggingTraceListener.cs22
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Web/RequestHelper.cs99
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj1
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/WebRequestHelper.cs21
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs52
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngine.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV12.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV4.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs44
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs9
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectInstance.cs8
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs36
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateInformation.cs25
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateParameters.cs13
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/AssemblyInfo.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml5
-rw-r--r--main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Chart/BasicChart.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs18
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockItemToolbar.cs26
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs9
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupSearchPattern.cs37
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWindow.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs20
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs3
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/BraceMatcherTextEditorExtension.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs8
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/DefaultCommandTextEditorExtension.cs652
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/ErrorHandlerTextEditorExtension.cs235
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/FoldingTextEditorExtension.cs151
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedCompletionExtension.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedFilterCompletionTextEditorExtension.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditor.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs860
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs18
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs9
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/BaseViewContent.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs20
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DocumentToolbar.cs26
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SyncContext.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/FinalProjectConfigurationPage.cs3
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/PackageReferencePanel.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectReferencePanel.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/SelectReferenceDialog.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectCreateInformationExtensions.cs40
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateConditionEvaluator.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopSourceTextContainer.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopTextLoader.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs145
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService_WorkspaceHandling.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs295
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdePreferences.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs6
-rw-r--r--main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj2
-rw-r--r--main/tests/UnitTests/MonoDevelop.Ide.Editor/Commands/CodeCommentTests.cs47
-rw-r--r--main/tests/UnitTests/MonoDevelop.Ide.Gui/SearchPopupWindowTests.cs14
-rw-r--r--main/tests/UnitTests/MonoDevelop.Ide.Templates/TestableWizardPage.cs2
-rw-r--r--main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs16
-rw-r--r--main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs21
-rwxr-xr-xmain/tests/test-projects/msbuild-project-test/test.csproj1
-rw-r--r--main/tests/test-projects/unsupported-project-roundtrip/TestApp.WinPhone.csproj10
-rw-r--r--main/tests/test-projects/unsupported-project-roundtrip/packages.config2
156 files changed, 4849 insertions, 3538 deletions
diff --git a/configure b/configure
index aad95834ec..fa068343d2 100755
--- a/configure
+++ b/configure
@@ -52,8 +52,9 @@ usage ()
echo ""
echo "--enable-release"
echo " Builds md in release mode"
- echo "--enable-mac64"
- echo " Build for x64 on OS X"
+ echo ""
+ echo "--enable-mac32"
+ echo " Build for i386 on OS X"
echo ""
echo "--profile=PROFILE"
echo ""
@@ -161,7 +162,7 @@ configure_packages ()
enable_tests=" "
fi
- if [ -z "$MONODEVELOP_64BIT_SAFE" ]; then
+ if test xno == x$x64; then
enable_x64=--with-macarch=i386
else
enable_x64=--with-macarch=x86_64
@@ -246,8 +247,8 @@ while test x$1 != x; do
--enable-release)
release=yes
;;
- --enable-mac64)
- x64=yes
+ --enable-mac32)
+ x64=no
;;
--prefix=*)
prefix=`echo $1 | sed 's/--prefix=//'`
diff --git a/main/Makefile.include b/main/Makefile.include
index 8d0cec7599..59f937cb1e 100644
--- a/main/Makefile.include
+++ b/main/Makefile.include
@@ -10,7 +10,6 @@ abs_top_builddir ?= $(top_builddir)
MD_BIN_PATH=$(abs_top_builddir)/build/bin
MD_LAUNCH_SETUP= \
- MONODEVELOP_LOCALE_PATH="$(abs_top_builddir)/build/locale" \
- MONODEVELOP_PROFILE="$(MD_BIN_PATH)/test-profile"
+ MONODEVELOP_LOCALE_PATH="$(abs_top_builddir)/build/locale"
MDTOOL_RUN=$(MD_LAUNCH_SETUP) exec -a "mdtool" $(RUNTIME)$(SGEN_SUFFIX) --debug "$(MD_BIN_PATH)/mdtool.exe"
diff --git a/main/external/RefactoringEssentials b/main/external/RefactoringEssentials
-Subproject f53f4091514104936eaf472b95ee2aa210854ad
+Subproject 523277154a40f3a02c48f011b52c38b41d8de5c
diff --git a/main/external/fsharpbinding b/main/external/fsharpbinding
-Subproject 0888ab6a530c9f51576f7a18e9653c1445412b4
+Subproject af7fca23865814fcd23672414adf9608652f5df
diff --git a/main/external/roslyn b/main/external/roslyn
-Subproject 571132d0df9b754e525c2ea2aaefed5d7677883
+Subproject 16e117c2400d0ab930e7d89512f9894a169a0e6
diff --git a/main/po/uk.po b/main/po/uk.po
index 093f9d7f15..73c58d2dcb 100644
--- a/main/po/uk.po
+++ b/main/po/uk.po
@@ -2,13 +2,13 @@
# Copyright (C) 2014 Olexandr Pylypchuk <pilipchukap@rambler.ru>
# This file is distributed under the same license as the MonoDevelop package.
#
-# Olexandr Pylypchuk <pilipchukap@rambler.ru>, 2014.
+# Olexandr Pylypchuk <pilipchukap@rambler.ru>, 2014, 2016.
msgid ""
msgstr ""
"Project-Id-Version: MonoDevelop 2.4.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-12-15 15:35:25-0500\n"
-"PO-Revision-Date: 2014-11-20 19:02+0200\n"
+"PO-Revision-Date: 2016-02-06 10:23+0200\n"
"Last-Translator: Olexandr Pylypchuk <pilipchukap@rambler.ru>\n"
"Language-Team: Ukrainian <kde-i18n-doc@kde.org>\n"
"Language: uk\n"
@@ -113,9 +113,8 @@ msgid "Target File"
msgstr "Цільовий файл"
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectConfiguration.cs:14
-#, fuzzy
msgid "Target Path"
-msgstr "Назва цілі"
+msgstr "Цільовий шлях"
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectConfiguration.cs:14
msgid "Target Name"
@@ -287,6 +286,8 @@ msgid ""
"Invalid custom command for '{0}' step: the path to the command to execute "
"has not been provided."
msgstr ""
+"Неправильна власна команда для кроку '{0}': не надано шлях до команди, "
+"яку слід виконати."
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects/CustomCommand.cs:4
msgid "Executing: {0} {1}"
@@ -598,9 +599,8 @@ msgid "Could not load {0} project '{1}'. {2}"
msgstr "Неможливо завантажити {0} проект '{1}'. {2}"
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:43
-#, fuzzy
msgid "Unknown project type: {0}"
-msgstr "Невідома ціль {0}"
+msgstr "Невідомий тип проекту: {0}"
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:43
msgid "Could not load project '{0}' with unknown item type '{1}'"
@@ -608,9 +608,8 @@ msgstr "Не вдалось завантажити проект '{0}' з нев
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:43
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:57
-#, fuzzy
msgid "Unknown project type"
-msgstr "Невідомий тип пакета"
+msgstr "Невідомий тип проекту"
#: ../src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs:43
msgid "Could not load project '{0}' with unknown item type"
@@ -809,13 +808,12 @@ msgstr ""
"використати Visual Studio або Xamarin Studio на Mac."
#: ../src/core/MonoDevelop.Core/MonoDevelop.Core.addin.xml:16
-#, fuzzy
msgid ""
"Xamarin.Mac projects are not supported in MonoDevelop on Windows. You need "
"to use Xamarin Studio on Mac."
msgstr ""
-"Проекти Xamarin.iOS не підтримуються у MonoDevelop на Windows. Слід "
-"використати Visual Studio або Xamarin Studio на Mac."
+"Проекти Xamarin.Mac не підтримуються у MonoDevelop на Windows. Слід "
+"використати Xamarin Studio на Mac."
#: ../src/core/MonoDevelop.Core/frameworks/framework_NET_1_1.xml:0
msgid "Mono / .NET 1.1"
@@ -939,14 +937,12 @@ msgid "Creates an empty interface."
msgstr "Створити порожній інтерфейс."
#: ../src/core/MonoDevelop.Ide/templates/EmptyResourceFile.xft.xml:0
-#, fuzzy
msgid "Resource File"
-msgstr "Порожній файл ресурсів"
+msgstr "Файл ресурсів"
#: ../src/core/MonoDevelop.Ide/templates/EmptyResourceFile.xft.xml:0
-#, fuzzy
msgid "Creates a resx resource file."
-msgstr "Створити порожній файл ресурсів."
+msgstr "Створити файл ресурсів resx."
#: ../src/core/MonoDevelop.Ide/templates/EmptyStruct.xft.xml:0
msgid "Empty Struct"
@@ -1397,7 +1393,7 @@ msgstr "Назва класу вікна"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/MonoDevelop-templates.xml:13
msgid "Template for a class loading contents from a gtkbuilder file"
-msgstr ""
+msgstr "Шаблон класу, що завантажує вміст з файлу gtkbuilder"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/MonoDevelop-templates.xml:13
msgid "Path to ui description file (widgets.ui)"
@@ -1521,24 +1517,20 @@ msgid "_Toggle Line Comment(s)"
msgstr "_Перемкнути коментування рядків"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "Comment selected lines of code"
-msgstr "_Додати відступи до вибраних рядків"
+msgstr "Закоментувати вибрані рядки коду"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "_Add Line Comment(s)"
-msgstr "_Перемкнути коментування рядків"
+msgstr "_Закоментувати рядки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "Uncomment selected lines of code"
-msgstr "Закоментувати/Розкоментувати вибрані рядки коду"
+msgstr "Розкоментувати вибрані рядки коду"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "_Remove Line Comment(s)"
-msgstr "_Перемкнути коментування рядків"
+msgstr "_Розкоментувати рядки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
msgid "Indent selected lines of code"
@@ -1586,14 +1578,12 @@ msgid "_Join Lines"
msgstr "О_б'єднати рядки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "Sort the selected lines"
-msgstr "Вирізати вибраний текст"
+msgstr "Упорядкувати вибрані рядки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
-#, fuzzy
msgid "_Sort Lines"
-msgstr "О_б'єднати рядки"
+msgstr "_Упорядкувати рядки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:7
msgid "_Word Count..."
@@ -1960,15 +1950,13 @@ msgid "Export Policy..."
msgstr "_Експортувати політику..."
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:12
-#, fuzzy
msgid "Run Code Analysis on Solution"
-msgstr "Закрити всі рішення"
+msgstr "Запустити аналіз коду рішення"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:12
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs:45
-#, fuzzy
msgid "Run Code Analysis on Project"
-msgstr "Консольний проект IL"
+msgstr "Запустити аналіз коду проекту"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:14
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs:35
@@ -2186,14 +2174,12 @@ msgid "Require Specific Version"
msgstr "Потрібна особлива версія"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:15
-#, fuzzy
msgid "Closes all opened files in a tab"
-msgstr "Закрити всі відкриті файли за винятком активного файлу"
+msgstr "Закрити всі відкриті файли у вкладці"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:15
-#, fuzzy
msgid "C_lose Others"
-msgstr "Прихо_вати інші"
+msgstr "_Закрити інші"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:15
msgid "Closes all opened files except for the active file"
@@ -2374,14 +2360,12 @@ msgid "Resets zoom to default"
msgstr "Відновити стандартний масштаб"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:19
-#, fuzzy
msgid "2 Columns"
-msgstr "Колонки"
+msgstr "2 колонки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:19
-#, fuzzy
msgid "1 Column"
-msgstr "Колонки"
+msgstr "1 колонка"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:19
#, fuzzy
@@ -2443,29 +2427,24 @@ msgid "Window"
msgstr "Вікно"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
-#, fuzzy
msgid "_Next Document"
-msgstr "_Форматування документа"
+msgstr "_Наступний документ"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
-#, fuzzy
msgid "Show next document"
-msgstr "Перейти до наступного документа"
+msgstr "Показати наступний документ"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
-#, fuzzy
msgid "_Previous Document"
-msgstr "_Показати курсор"
+msgstr "_Попередній документ"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
-#, fuzzy
msgid "Show previous document"
-msgstr "Перейти до попереднього документа"
+msgstr "Показати попередній документ"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
-#, fuzzy
msgid "Document List"
-msgstr "Документи"
+msgstr "Список документів"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:27
msgid "Window List"
@@ -2797,9 +2776,8 @@ msgid "Delete entire line"
msgstr "Видалити цілий рядок"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:41
-#, fuzzy
msgid "Delete to start of line"
-msgstr "Видалити до кінця рядка"
+msgstr "Видалити до початку рядка"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:41
msgid "Delete to end of line"
@@ -2996,11 +2974,11 @@ msgstr "Увімкнути/вимкнути спливні повідомлен
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:41
msgid "_Hide Issues"
-msgstr ""
+msgstr "_Приховати проблеми"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml:41
msgid "Toggle Issues"
-msgstr ""
+msgstr "Перемкнути проблеми"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/DefaultPolicyPanels.addin.xml:2
#: ../src/core/MonoDevelop.Ide/ExtensionModel/ItemOptionPanels.addin.xml:1
@@ -3173,10 +3151,9 @@ msgstr "Виведення"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/ItemOptionPanels.addin.xml:1
msgid "Configuration Mappings"
-msgstr ""
+msgstr "Карти конфігурацій"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/ItemOptionPanels.addin.xml:1
-#, fuzzy
msgid "Code Analysis"
msgstr "Аналіз коду"
@@ -3357,9 +3334,8 @@ msgid "Apple Strings"
msgstr "Рядки Apple"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/MimeTypes.addin.xml:2
-#, fuzzy
msgid "sql files"
-msgstr "Файли il"
+msgstr "Файли sql"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/MimeTypes.addin.xml:2
msgid "JSON files"
@@ -3370,9 +3346,8 @@ msgid "Shell script"
msgstr "Сценарій оболонки"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/MimeTypes.addin.xml:2
-#, fuzzy
msgid "F# files"
-msgstr "Файли f#"
+msgstr "Файли F#"
#: ../src/core/MonoDevelop.Ide/ExtensionModel/MimeTypes.addin.xml:2
#, fuzzy
@@ -3623,7 +3598,7 @@ msgstr "Не вдалось виконати команду"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs:45
msgid "Run Code Analysis on {0}"
-msgstr ""
+msgstr "Запустити аналіз коду для {0}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ToolsCommands.cs:4
msgid "Start tool"
@@ -3690,9 +3665,8 @@ msgid "Show Previous ({0})"
msgstr "Показати попередній ({0})"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/WindowCommands.cs:11
-#, fuzzy
msgid "Activate document '{0}'"
-msgstr "Активувати вікно '{0}'"
+msgstr "Активувати документ '{0}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/WindowCommands.cs:18
msgid "Activate window '{0}'"
@@ -3756,7 +3730,7 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs:6
msgid "All changes made to the document will be permanently lost."
-msgstr ""
+msgstr "Всі зміни, зроблені у документах, будуть повністю втрачені."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/CommonAboutDialog.cs:3
#: ../src/addins/MacPlatform/MacPlatform.cs:41
@@ -3793,9 +3767,8 @@ msgid "_Save and Quit"
msgstr "Зберегти і в_ийти"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/DirtyFilesDialog.cs:10
-#, fuzzy
msgid "_Save and Close"
-msgstr "Зберегти і в_ийти"
+msgstr "Зберегти і за_крити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/NewLayoutDialog.cs:5
msgid "Enter a name for the new layout"
@@ -3998,13 +3971,12 @@ msgid "Import From Folder"
msgstr "Імпортувати з теки"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs:36
-#, fuzzy
msgid "Empty directory."
-msgstr "Порожній деструктор"
+msgstr "Порожня тека."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs:36
msgid "Directory {0} is empty, no files have been added."
-msgstr ""
+msgstr "Тека {0} порожня, файли не додано."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs:37
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs:45
@@ -4106,13 +4078,12 @@ msgstr ""
"Виберіть Вилучити з проекту, щоб вилучити файл тільки з поточного рішення."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs:10
-#, fuzzy
msgid ""
"The directory and any files it contains will be permanently removed from "
"your hard disk. "
msgstr ""
"Тека та всі наявні у ній файли будуть повністю вилучені з вашого "
-"жорсткогодиска."
+"жорсткого диска."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs:12
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs:14
@@ -4128,9 +4099,8 @@ msgid "The folder {0} could not be deleted from disk: {1}"
msgstr "Не вдалось видалити теку {0} з диска: {1}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs:7
-#, fuzzy
msgid "Unknown language '{0}'"
-msgstr "Невідома ціль {0}"
+msgstr "Невідома мова '{0}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs:9
#, fuzzy
@@ -4140,9 +4110,8 @@ msgstr ""
"Неправильна конфігурація {0}. Правильні конфігурації : "
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs:9
-#, fuzzy
msgid "Project not built in active configuration"
-msgstr "Конфігурація проекту"
+msgstr "Проект не побудовано в активній конфігурації"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs:3
#: ../src/addins/MonoDevelop.Autotools/gtk-gui/MonoDevelop.Autotools.MakefileOptionPanelWidget.cs:1
@@ -4213,9 +4182,8 @@ msgid "Initializing Main Window"
msgstr "Ініціалізація головного вікна"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:22
-#, fuzzy
msgid "Save the changes to document '{0}' before creating a new solution?"
-msgstr "Зберегти зміни у документі '{0}' перед закриванням?"
+msgstr "Зберегти зміни у документі '{0}' перед створенням нового рішення?"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:43
msgid "Opening {0}"
@@ -4450,9 +4418,8 @@ msgid "Category"
msgstr "Категорія"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs:38
-#, fuzzy
msgid "Toggle visibility of Category column"
-msgstr "Показати/сховати колонку 'Шлях'"
+msgstr "Показати/сховати колонку 'Категорія'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs:69
msgid "{0} Error"
@@ -4536,9 +4503,8 @@ msgstr ""
"<span foreground='grey'>{0} <span size='small'>(Недоступно)</span></span>"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs:3
-#, fuzzy
msgid "Load failed: "
-msgstr "(Збій при завантаженні)"
+msgstr "Збій при завантаженні:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs:8
msgid "Do you really want to remove project '{0}' from solution '{1}'"
@@ -4586,23 +4552,20 @@ msgid "Apply"
msgstr "Застосувати"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.BuildPanelWidget.cs:17
-#, fuzzy
msgid "Build project before running"
-msgstr "Побудувати рішення перед запуском"
+msgstr "Побудувати проект перед запуском"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.BuildPanelWidget.cs:17
-#, fuzzy
msgid "Run project if build completed with warnings"
-msgstr "Запустити рішення, якщо побудова завершилась з попередженнями"
+msgstr "Запустити проект, якщо побудова завершилась з попередженнями"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.BuildPanelWidget.cs:17
msgid "Enable parallel build of projects"
-msgstr ""
+msgstr "Дозволити паралельну побудову проектів"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.BuildPanelWidget.cs:17
-#, fuzzy
msgid "Build project before executing unit tests"
-msgstr "Побудувати рішення перед виконанням модульних тестів"
+msgstr "Побудувати проект перед виконанням модульних тестів"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.BuildPanelWidget.cs:17
msgid "Log _verbosity:"
@@ -4872,9 +4835,8 @@ msgid "Standard _Header"
msgstr "Стандартний _заголовок"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.StandardHeader/StandardHeaderPolicyPanel.cs:4
-#, fuzzy
msgid "Templates"
-msgstr "Шаблони T4"
+msgstr "Шаблони"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AuthorInformationPanelWidget.cs:2
msgid "_Use custom author information for this solution"
@@ -4909,13 +4871,12 @@ msgid "Native"
msgstr "Власні"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/TextStylePolicyPanel.cs:2
-#, fuzzy
msgid "Mac Classic"
-msgstr "_Основний клас:"
+msgstr "Класичний Mac"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/TextStylePolicyPanel.cs:2
msgid "Unix / Mac"
-msgstr ""
+msgstr "Unix / Mac"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/TextStylePolicyPanel.cs:2
#: ../src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.addin.xml:31
@@ -5010,7 +4971,7 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.CodeTemplates.EditTemplateDialog.cs:2
msgid "_Shortcut:"
-msgstr ""
+msgstr "_Ярлик:"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.CodeTemplates.EditTemplateDialog.cs:2
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.CombineInformationWidget.cs:2
@@ -5026,7 +4987,7 @@ msgstr "Текст шаблону:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs:2
msgid "Editable"
-msgstr ""
+msgstr "Можна редагувати"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs:3
msgid "Identifier"
@@ -5057,13 +5018,15 @@ msgstr "Функція, що буде розрахована для вмісту
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs:2
msgid "Whether the variable is an editable region."
-msgstr ""
+msgstr "Чи належить змінна області, доступній для редагування"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs:3
msgid ""
"Whether the variable is an identifier, and should only accept valid "
"identifiers as input."
msgstr ""
+"Чи є змінна ідентифікатором, і чи вимагає на вході лише правильного "
+"ідентифікатора."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs:3
msgid "A list of values for the user to choose from."
@@ -5085,7 +5048,7 @@ msgstr "Середовище виконання Mono не знайдено"
msgid ""
"Please provide a valid directory prefix where mono is installed (for "
"example, /usr)"
-msgstr ""
+msgstr "Надайте правильний префікс теки, де встановлено mono (наприклад, /usr)"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.MonoRuntimePanelWidget.cs:2
msgid ""
@@ -5288,9 +5251,8 @@ msgid "Replacing '{0}' in current selection"
msgstr "Заміна '{0}' у вибраному"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs:19
-#, fuzzy
msgid "Looking in solution folder '{0}'"
-msgstr "Завантаження файлу рішення {0}"
+msgstr "Пошук у теці рішення {0}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs:19
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs:25
@@ -5380,7 +5342,7 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "MDB Mode"
-msgstr ""
+msgstr "Режим MDB"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "GDB Symbols"
@@ -5392,7 +5354,7 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Verbose Level"
-msgstr ""
+msgstr "Рівень деталізації"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Runtime Version"
@@ -5449,7 +5411,7 @@ msgstr "Префікс глобального кешу збірок (GAC)"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Strip Drive Letters"
-msgstr ""
+msgstr "Відкинути букви дисків"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Case Insensitive Paths"
@@ -5481,7 +5443,7 @@ msgstr "Зберегти тимчасові файли ASP.NET"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Trace Listener"
-msgstr ""
+msgstr "Слухач трасування"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "X11 Exceptions"
@@ -5521,7 +5483,7 @@ msgstr "Дозволити підтримку зневадження"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Enable more detailed InvalidCastException messages."
-msgstr ""
+msgstr "Увімкнути більш детальні повідомлення InvalidCastException."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid ""
@@ -5543,11 +5505,11 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Runs in profiling mode with the specified profiler module."
-msgstr ""
+msgstr "Запускається в режимі профілювання зі вказаним модулем профілювання."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Increases the verbosity level."
-msgstr ""
+msgstr "Збільшити рівень деталізації."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid "Use the specified runtime version, instead of autodetecting"
@@ -5695,6 +5657,9 @@ msgid ""
"If set, temporary source files generated by ASP.NET support classes will not "
"be removed. They will be kept in the user's temporary directory."
msgstr ""
+"Якщо встановлено, тимчасові файли, створені класами підтримки ASP.NET, не "
+"будуть"
+"вилучені. Вони будуть збережені у тимчасовій теці користувача."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Execution/MonoExecutionParameters.cs:3
msgid ""
@@ -5851,7 +5816,7 @@ msgstr "Кінець списку"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AssemblyFoldersPanelWidget.cs:2
msgid ""
"Custom folders where MonoDevelop should look for assemblies and packages:"
-msgstr ""
+msgstr "Власні теки, де MonoDevelop має шукати збірки і пакунки:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/BuildMessagePanel.cs:5
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:108
@@ -5899,9 +5864,8 @@ msgid "Jump to first error or warning:"
msgstr "Перейти до першої помилки або попередження:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs:31
-#, fuzzy
msgid "Search:"
-msgstr "_Пошук:"
+msgstr "Пошук:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs:32
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SearchAndReplaceWidget.cs:7
@@ -5928,14 +5892,12 @@ msgstr ""
"параметр 'Запустити у зовнішній консолі' у налаштуваннях проекту."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:9
-#, fuzzy
msgid "Generate templates"
-msgstr "Створити файли Makefile"
+msgstr "Створити шаблони"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:10
-#, fuzzy
msgid "No templates found"
-msgstr "Оновлень не знайдено"
+msgstr "Шаблони не знайдено"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:21
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:38
@@ -5943,19 +5905,16 @@ msgid "Running generator '{0}' on file '{1}'..."
msgstr "Виконується генератор '{0}' у файлі '{1}'..."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:22
-#, fuzzy
msgid "File '{0}' was generated successfully."
-msgstr "Процес '{0}' завершено успішно"
+msgstr "Файл '{0}' створено успішно."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:22
-#, fuzzy
msgid "File '{0}' was generated with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "Файл '{0}' створено з попередженнями."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:22
-#, fuzzy
msgid "Errors in file '{0}' generation."
-msgstr "Помилка читання файлу '{0}'."
+msgstr "Помилки при створенні файлу '{0}'."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:27
msgid "Errors in file generation."
@@ -5966,21 +5925,20 @@ msgid "Warnings in file generation."
msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:27
-#, fuzzy
msgid "Generated files successfully."
-msgstr "Операцію завершено успішно."
+msgstr "Файли створено успішно."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:41
msgid "Cancelled because generator ran again for the same file"
-msgstr ""
+msgstr "Скасовано, оскільки генератор запущено повторно для того ж файлу"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:42
msgid "The '{0}' code generator crashed"
-msgstr ""
+msgstr "Генератор коду '{0}' впав"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:43
msgid "The '{0}' code generator output invalid filename '{1}'"
-msgstr ""
+msgstr "Неправильна назва вихідного файлу '{1}' генератора коду '{0}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.CustomTools/CustomToolService.cs:26
msgid ""
@@ -6010,9 +5968,8 @@ msgid "Clear"
msgstr "Очистити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components/GtkUtil.cs:60
-#, fuzzy
msgid "Cut"
-msgstr "Ви_різати"
+msgstr "Вирізати"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components/GtkUtil.cs:61
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:57
@@ -6021,9 +5978,8 @@ msgid "Copy"
msgstr "Копіювати"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components/GtkUtil.cs:62
-#, fuzzy
msgid "Paste"
-msgstr "Вст_авити"
+msgstr "Вставити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components/GtkUtil.cs:64
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs:51
@@ -6171,16 +6127,15 @@ msgstr "Детальніше"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.ProgressDialog.cs:2
msgid "GtkButton"
-msgstr ""
+msgstr "GtkButton"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/Ide.cs:17
msgid "Loading Workbench"
msgstr "Завантаження середовища розробки"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/Ide.cs:29
-#, fuzzy
msgid "Could not open file: {0}"
-msgstr "Не вдалось оновити файл '{0}'"
+msgstr "Не вдалось відкрити файл: '{0}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs:15
msgid "Workspace saved."
@@ -6207,9 +6162,8 @@ msgid "Could not close solution '{0}'."
msgstr "Не вдалось закрити рішення {0}."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs:33
-#, fuzzy
msgid "{0} is already opened"
-msgstr "Файл {0} доступний лише для читання"
+msgstr "{0} вже відкрито"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs:41
msgid "File is not a project or solution: {0}"
@@ -6349,7 +6303,7 @@ msgstr "Всі конфігурації"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs:8
msgid "(Active)"
-msgstr ""
+msgstr "(Активний)"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs:19
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CodeGenerationPanelWidget.cs:2
@@ -6418,9 +6372,8 @@ msgid "Browse..."
msgstr "Огляд..."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs:25
-#, fuzzy
msgid "Select Assembly"
-msgstr "З_бірка .NET"
+msgstr "Виберіть збірку"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs:27
msgid "File '{0}' is not a valid .Net Assembly"
@@ -6565,14 +6518,12 @@ msgid "The file '{0}' could not be loaded."
msgstr "Не вдалось завантажити файл {0}."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:26
-#, fuzzy
msgid "The file '{0}' is not a known project file format."
-msgstr "Не вдалось відкрити файл '{0}'. Він занадто великий."
+msgstr "Файл '{0}' не є файлом проекту відомого формату."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:27
-#, fuzzy
msgid "The project '{0}' has already been added."
-msgstr "Проект '{0}' не підтримується {1}"
+msgstr "Проект '{0}' вже додано."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:39
msgid "Do you really want to remove project '{0}' from '{1}'?"
@@ -6628,18 +6579,16 @@ msgid "Clean successful."
msgstr "Очищення завершено успішно."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:73
-#, fuzzy
msgid "Outdated Build"
-msgstr "Після побудови"
+msgstr "Застаріла побудова"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:73
-#, fuzzy
msgid ""
"The project you are executing has changes done after the last time it was "
"compiled. Do you want to continue?"
msgstr ""
"До проекту, який виконується, внесено зміни після останньої компіляції. "
-"Можливо, зневаджувальна інформація застаріла. Продовжити?"
+"Бажаєте продовжити?"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:88
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:94
@@ -6680,7 +6629,7 @@ msgstr "Додаються файли..."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:99
msgid "There is a already a file or link in the project with the name '{0}'"
-msgstr ""
+msgstr "У проекті вже є файл або посилання з назвою '{0}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:99
msgid ""
@@ -6692,7 +6641,7 @@ msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:99
msgid "The link '{0}' in the project already includes the file '{1}'"
-msgstr ""
+msgstr "Посилання '{0}' у проекті вже включає файл '{1}'"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs:99
msgid "The file '{0}' already exists. Do you want to replace it?"
@@ -7062,11 +7011,11 @@ msgstr "Перейменувати"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.StartupOptionsPanelWidget.cs:2
msgid "Single startup project:"
-msgstr "Окремий завантажувальний проект:"
+msgstr "Окремий початковий проект:"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.StartupOptionsPanelWidget.cs:2
msgid "Multiple startup projects:"
-msgstr "Декілька завантажувальних проектів:"
+msgstr "Декілька початкових проектів:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CodeFormattingPanel.cs:4
msgid "File Type"
@@ -7332,33 +7281,28 @@ msgstr ""
"використовується вбудований оглядач довідки."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/HelpOperations.cs:24
-#, fuzzy
msgid "Help Viewer could not be opened"
-msgstr "Не вдалось відкрити файл {0}."
+msgstr "Не вдалось відкрити оглядач довідки"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:20
msgid "Starting {0}"
msgstr "Запуск {0}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:29
-#, fuzzy
msgid "MonoDevelop failed to start"
-msgstr "Файли політик MonoDevelop"
+msgstr "MonoDevelop не вдалось запуститися."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:57
-#, fuzzy
msgid "Close MonoDevelop"
-msgstr "MonoDevelop"
+msgstr "Закрити MonoDevelop"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:57
-#, fuzzy
msgid "More Information"
msgstr "Більше інформації"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:57
-#, fuzzy
msgid "Continue Anyway"
-msgstr "Продовжити"
+msgstr "Все одно продовжити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:65
msgid "CustomizerAssemblyPath"
@@ -7400,7 +7344,6 @@ msgid "Select Font"
msgstr "Виберіть шрифт"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Fonts/FontChooserPanelWidget.cs:8
-#, fuzzy
msgid "Set To Default"
msgstr "Зробити стандартним"
@@ -7555,7 +7498,7 @@ msgstr "Застосувати політику з файлу"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs:2
msgid "Policies to set or replace:"
-msgstr ""
+msgstr "Політики для вмикання або заміни:"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs:2
msgid "_Apply policies"
@@ -7746,11 +7689,11 @@ msgstr[2] "Востаннє відкрито {0} хвилин тому"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectLoadProgressMonitor.cs:4
msgid "Back up and migrate"
-msgstr ""
+msgstr "Зарезервувати і перетворити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectLoadProgressMonitor.cs:4
msgid "Migrate"
-msgstr ""
+msgstr "Перетворити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectLoadProgressMonitor.cs:4
msgid "Ignore"
@@ -7758,7 +7701,7 @@ msgstr "Знехтувати"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectLoadProgressMonitor.cs:4
msgid "Migrate Project?"
-msgstr ""
+msgstr "Перетворити проект"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ProjectLoadProgressMonitor.cs:4
msgid ""
@@ -7768,6 +7711,11 @@ msgid ""
"If you choose to back up the project before migration, a copy of the project "
"file will be saved in a 'backup' directory in the project directory."
msgstr ""
+"Один або більше проектів слід перетворити у новий формат. Після "
+"перетворення їх буде неможливо відкрити старою версією MonoDevelop.\n"
+"\n"
+"Якщо вибрати резервування проекту перед перетворенням, то копію "
+"проекту буде збережено у теці 'backup', що у теці проекту."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/LogAgentOptionsPanel.cs:5
msgid "Report errors and usage information to help {0} improve my experience."
@@ -7861,9 +7809,8 @@ msgid "Commands"
msgstr "Команди"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageSection.cs:17
-#, fuzzy
msgid "File not found {0}"
-msgstr "Файл не знайдено: {0}"
+msgstr "Файл не знайдено {0}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageFeedItem.cs:192
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs:28
@@ -8019,9 +7966,8 @@ msgid "FirstRunDescription"
msgstr "ОписПершогоЗапуску"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IdeFileSystemExtensionExtension.cs:4
-#, fuzzy
msgid "File '{0}' is locked."
-msgstr "'{0}' розблоковано."
+msgstr "Файл '{0}' заблоковано."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IdeFileSystemExtensionExtension.cs:4
msgid "File {0} is read-only"
@@ -8046,9 +7992,8 @@ msgid "Framework not installed: {0}"
msgstr "Фреймворк не встановлено: {0}"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs:12
-#, fuzzy
msgid "Search in Solution..."
-msgstr "Шукати у рішенні"
+msgstr "Пошук у рішенні..."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineMSBuildOptions.cs:54
msgid "Use MSBuild build engine (recommended for this project type)"
@@ -8069,24 +8014,20 @@ msgid "_Surround With..."
msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:52
-#, fuzzy
msgid "Choose a template for your new project"
-msgstr "Виберіть файл з проекту."
+msgstr "Виберіть шаблон для вашого нового проекту."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:53
-#, fuzzy
msgid "Configure your new project"
-msgstr "Поточний проект"
+msgstr "Сконфігуруйте ваш новий проект"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:54
-#, fuzzy
msgid "Configure your new workspace"
-msgstr "Створити новий робочий простір"
+msgstr "Сконфігуруйте ваш новий робочий простір"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:55
-#, fuzzy
msgid "Configure your new solution"
-msgstr "Створити нове рішення"
+msgstr "Сконфігуруйте ваше нове рішення"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:480
#: ../src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.Gui/DeployDialog.cs:6
@@ -8095,18 +8036,16 @@ msgstr "Створити"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:482
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.UI.cs:232
-#, fuzzy
msgid "Next"
-msgstr "Наступна порада"
+msgstr "Далі"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:635
msgid "A Project with that name is already in your Project Space"
msgstr "Проект з такою назвою проекту вже є у вашому просторі проектів"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:640
-#, fuzzy
msgid "A solution with that filename is already in your workspace"
-msgstr "Проект з такою назвою проекту вже є у вашому просторі проектів"
+msgstr "Рішення з такою назвою файлу вже є у вашому робочому просторі"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:646
msgid ""
@@ -8115,7 +8054,6 @@ msgid ""
msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:654
-#, fuzzy
msgid ""
"Directory {0} already exists.\n"
"Do you want to continue creating the project?"
@@ -8140,33 +8078,29 @@ msgid "New Project"
msgstr "Новий проект"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.UI.cs:225
-#, fuzzy
msgid "Previous"
-msgstr "Показати попереднє"
+msgstr "Попереднє"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectFolderPreviewWidget.cs:35
msgid "<span weight='bold' foreground='#555555'>PREVIEW</span>"
-msgstr ""
+msgstr "<span weight='bold' foreground='#555555'>ПОПЕРЕДНІЙ ПЕРЕГЛЯД</span>"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs:215
-#, fuzzy
msgid "Workspace Name:"
-msgstr "Назва робочого простору"
+msgstr "Назва робочого простору:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs:217
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:207
-#, fuzzy
msgid "Solution Name:"
-msgstr "Назва рішення"
+msgstr "Назва рішення:"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:113
msgid "Create a .gitignore file to ignore inessential files."
msgstr ""
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:129
-#, fuzzy
msgid "Create a project within the solution directory."
-msgstr "Шлях файлу відносно теки встановлення."
+msgstr "Створити проект з текою рішення."
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:185
#: ../src/addins/MonoDevelop.Autotools/ImportMakefileDialog.cs:2
@@ -8174,14 +8108,12 @@ msgid "Project Name:"
msgstr "Назва проекту:"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:245
-#, fuzzy
msgid "Use git for version control."
-msgstr "Інтегрувати з засобом керування _версіями"
+msgstr "Використати git для керування версіями"
#: ../src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.GtkProjectConfigurationWidget.cs:275
-#, fuzzy
msgid "Version Control:"
-msgstr "Керування версіями"
+msgstr "Керування версіями:"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components/Mac/MDServicesMenuItem.cs:2
#: ../src/addins/MacPlatform/MacMenu/MDServicesMenuItem.cs:2
@@ -8211,12 +8143,11 @@ msgid "Illegal characters used in location."
msgstr "Розпізнавання тексту"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectConfiguration.cs:150
-#, fuzzy
msgid ""
"Illegal solution name.\n"
"Only use letters, digits, '.' or '_'."
msgstr ""
-"Недопустима назва проекту. \n"
+"Недопустима назва рішення. \n"
"Використовуйте лише латинські літери, цифри, '.' або '_'."
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectConfiguration.cs:157
@@ -8248,9 +8179,8 @@ msgid "Press ‘{0}’ to search"
msgstr ""
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs:77
-#, fuzzy
msgid "Search solution"
-msgstr "Шукати у рішенні"
+msgstr "Шукати рішення"
#: ../src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CodeAnalysisPanel.cs:12
#, fuzzy
@@ -8259,11 +8189,11 @@ msgstr "Увімкнути аналіз коду відкритих файлів
#: ../src/core/Mono.Texteditor/Mono.TextEditor.PopupWindow/ModeHelpWindow.cs:44
msgid "Use [%UP%] [%DOWN%] to move to another location."
-msgstr ""
+msgstr "Скористайтесь [%UP%] [%DOWN%], щоб перейти в інше місце."
#: ../src/core/Mono.Texteditor/Mono.TextEditor.PopupWindow/ModeHelpWindow.cs:44
msgid "Press [ENTER] to select the location."
-msgstr ""
+msgstr "Натисни [ENTER], щоб вибрати розташування."
#: ../src/core/Mono.Texteditor/Mono.TextEditor.PopupWindow/ModeHelpWindow.cs:44
msgid "Press [ESC] to cancel this operation."
@@ -8374,7 +8304,7 @@ msgstr "Заблокувати"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml:17
msgid "Release Lock"
-msgstr ""
+msgstr "Блокування релізу"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml:17
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs:0
@@ -8418,9 +8348,8 @@ msgid "_Version Control"
msgstr "_Контроль версій"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml:20
-#, fuzzy
msgid "Versio_n Control"
-msgstr "Керування версіями"
+msgstr "К_ерування версіями"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml:24
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml:25
@@ -8573,9 +8502,8 @@ msgid "Adding..."
msgstr "Додавання..."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/AddRemoveMoveCommand.cs:2
-#, fuzzy
msgid "Add operation completed."
-msgstr "Операцію оновлення завершено."
+msgstr "Операцію додавання завершено."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/AddRemoveMoveCommand.cs:2
msgid ""
@@ -8592,9 +8520,8 @@ msgid "Removing..."
msgstr "Вилучення..."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/AddRemoveMoveCommand.cs:2
-#, fuzzy
msgid "Remove operation completed."
-msgstr "Операцію скасування завершено."
+msgstr "Операцію вилучення завершено."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/CheckoutCommand.cs:2
msgid "Checking out {0}..."
@@ -9016,7 +8943,7 @@ msgstr ""
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs:6
msgid "Revert to this revision"
-msgstr ""
+msgstr "Повернутись до цієї ревізії"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs:9
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitSelectRevisionDialog.cs:81
@@ -9068,11 +8995,11 @@ msgstr "Справді знехтувати вибрані файли?"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IgnoreCommand.cs:75
msgid "Ignoring ..."
-msgstr ""
+msgstr "Нехтування ..."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IgnoreCommand.cs:90
msgid "Ignore operation completed."
-msgstr ""
+msgstr "Операцію нехтування завершено."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IgnoreCommand.cs:111
msgid "Are you sure you want to unignore the selected files?"
@@ -9099,19 +9026,17 @@ msgid "Version control operation failed: "
msgstr "Не вдалось виконати команду керування версіями:"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:135
-#, fuzzy
msgid "The following files must be locked before editing."
-msgstr "Файл '{0}' має бути заблокований перед редагуванням."
+msgstr "Файли мають бути заблоковані перед редагуванням."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:142
-#, fuzzy
msgid "File could not be unlocked."
-msgstr "Не вдалось розблокувати файл '{0}'"
+msgstr "Не вдалось розблокувати файл."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:242
msgid ""
"Project publishing failed. There is a stale .svn folder in the path '{0}'"
-msgstr ""
+msgstr "Не вдалось опублікувати проект. Виявлена застаріла тека .svn у '{0}'"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:555
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs:202
@@ -9244,9 +9169,8 @@ msgid "Upgrade working copy"
msgstr "робоча копія"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.Gui/WorkingCopyFormatDialog.cs:1
-#, fuzzy
msgid "Disable version control"
-msgstr "Глобально вимкнути керування версіями"
+msgstr "Вимкнути керування версіями"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.Gui/WorkingCopyFormatDialog.cs:2
msgid "The subversion working copy format is too old."
@@ -9293,7 +9217,7 @@ msgstr "Відновлення локальних змін"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs:103
msgid "Rebasing"
-msgstr ""
+msgstr "Перенесення"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs:109
msgid "Merging"
@@ -9340,7 +9264,7 @@ msgstr ""
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/gtk-gui/MonoDevelop.VersionControl.Git.PushDialog.cs:1
msgid "Branch:"
-msgstr ""
+msgstr "Гілка:"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/gtk-gui/MonoDevelop.VersionControl.Git.PushDialog.cs:1
msgid "Push Changes"
@@ -9352,7 +9276,7 @@ msgstr ""
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs:9
msgid "Rebasing branch '{0}'..."
-msgstr ""
+msgstr "Перенесення гілки '{0}'..."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs:9
msgid "Merging branch '{0}'..."
@@ -9571,7 +9495,7 @@ msgstr "Потрібні реєстраційні дані для доступу
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitCredentials.cs:14
msgid "Select a private SSH key to use."
-msgstr ""
+msgstr "Виберіть приватний ключ SSH для використання."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitCredentials.cs:14
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitCredentials.cs:17
@@ -9588,7 +9512,7 @@ msgstr "Поведінка команди оновлення:"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/gtk-gui/MonoDevelop.VersionControl.Git.GitOptionsPanelWidget.cs:1
msgid "Use the Rebase option for merging"
-msgstr ""
+msgstr "Скористайтесь параметром \"Перенесення\" для злиття"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/gtk-gui/MonoDevelop.VersionControl.Git.GitOptionsPanelWidget.cs:1
msgid "Automatically stash/unstash local changes"
@@ -9668,9 +9592,8 @@ msgid "Username:"
msgstr "Користувач:"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/gtk-gui/MonoDevelop.VersionControl.Git.UserGitConfigDialog.cs:80
-#, fuzzy
msgid "Email:"
-msgstr "_E-mail:"
+msgstr "Електронна адреса:"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitSelectRevisionDialog.cs:52
msgid "Select a revision"
@@ -9698,7 +9621,7 @@ msgstr ""
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git.addin.xml:2
msgid "Rebase to Branch..."
-msgstr ""
+msgstr "Перенесення до гілки..."
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git.addin.xml:2
msgid "Stash..."
@@ -9767,7 +9690,7 @@ msgstr "Не вдалось повернути '{0}' -- спробуйте он
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs:150
#: ../src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs:748
msgid "Resolved conflict state of '{0}'"
-msgstr ""
+msgstr "Розв'язано конфліктний стан '{0}'"
#: ../src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs:150
#: ../src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs:752
@@ -10187,6 +10110,8 @@ msgid ""
"The Gtk# User Interface designer will be disabled by removing the gtk-sharp "
"reference."
msgstr ""
+"Дизайнер користувацького інтерфейсу Gtk# буде вимкнено шляхом вилучення "
+"посилання на gtk-sharp."
#: ../src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore/ReferenceManager.cs:23
msgid "Disable Designer"
@@ -10540,7 +10465,7 @@ msgstr "Windows"
#: ../src/addins/MonoDevelop.GtkCore/libsteticui/PaletteBackend.cs:15
msgid "Empty"
-msgstr ""
+msgstr "Порожньо"
#: ../src/addins/MonoDevelop.GtkCore/libsteticui/ProjectBackend.cs:10
msgid "Not a Stetic file according to node name."
@@ -10918,7 +10843,7 @@ msgstr "Текст, що буде вставлено в документ."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/TextToolboxNode.cs:35
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/CodeTemplateToolboxProvider.cs:2
msgid "Text Snippets"
-msgstr ""
+msgstr "Текстові сніппети"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs:3
msgid "Show categories"
@@ -10926,7 +10851,7 @@ msgstr "Показати категорії"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs:3
msgid "Use compact display"
-msgstr ""
+msgstr "Використати компактний вигляд"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs:3
msgid "Add toolbox items"
@@ -11006,7 +10931,7 @@ msgstr "Групувати за категорією компонента"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ErrorInFileException.cs:4
msgid "Error in file '{0}' at line {1}, column {2}."
-msgstr ""
+msgstr "Помилка у файлі '{0}' в {1} рядку, {2} стовпчику."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/TypeNotFoundException.cs:2
msgid "Could not find type '{0}'."
@@ -11050,7 +10975,7 @@ msgstr "Тип файлу."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs:7
msgid "Action to perform when building this file."
-msgstr ""
+msgstr "Дія, яку слід виконати при побудові цього файлу."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs:7
msgid "Identifier of the embedded resource."
@@ -11060,11 +10985,11 @@ msgstr "Ідентифікатор вбудованого ресурсу."
msgid ""
"Whether to copy the file to the project's output directory when the project "
"is built."
-msgstr ""
+msgstr "Чи копіювати при побудові проекту файл до вихідної теки проекту."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs:7
msgid "The ID of a custom code generator."
-msgstr ""
+msgstr "ID власного генератора коду"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs:7
msgid ""
@@ -11091,7 +11016,7 @@ msgstr "Тип посилання."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectReferenceDescriptor.cs:3
msgid "Referenced project, when the reference is of type 'Project'."
-msgstr ""
+msgstr "Проект за посиланням, якщо посилання має тип 'Project'."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectReferenceDescriptor.cs:3
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ImplicitFrameworkAssemblyReferenceDescriptor.cs:3
@@ -11109,13 +11034,15 @@ msgstr "Шлях до збірки."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectReferenceDescriptor.cs:3
msgid "Copy the referenced assembly to the output directory."
-msgstr ""
+msgstr "Копіювати збірку за посиланням у вихідну теку."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectReferenceDescriptor.cs:3
msgid ""
"Require a specific version of the assembly. A warning will be issued if the "
"specific version is not found in the system."
msgstr ""
+"Вимагає особливої версії збірки. Якщо особлива версія не буде знайдена "
+"у системі, з'явиться попередження."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectReferenceDescriptor.cs:3
msgid "Package that provides this reference."
@@ -11150,6 +11077,8 @@ msgid ""
"Root directory of source files and projects. File paths will be shown "
"relative to this directory."
msgstr ""
+"Коренева тека сирцевих файлів і проектів. Шляхи до файлів будуть вказані "
+"відносно цієї теки."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/SolutionItemDescriptor.cs:3
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/WorkspaceItemDescriptor.cs:2
@@ -11158,11 +11087,11 @@ msgstr "Формат файлу проекту."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/WorkspaceItemDescriptor.cs:2
msgid "Name of the item."
-msgstr ""
+msgstr "Назва елемента."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/WorkspaceItemDescriptor.cs:2
msgid "File path of the item."
-msgstr ""
+msgstr "Шлях до файлу елемента."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/CodeBehindWriter.cs:6
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/CodeBehindWriter.cs:7
@@ -11201,7 +11130,7 @@ msgstr "Додати елементи..."
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.addin.xml:15
msgid "Switch between related files "
-msgstr ""
+msgstr "Перемикання між пов'язаними файлами"
#: ../src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.addin.xml:15
msgid "Switch between related files, such as CodeBehind, headers, etc."
@@ -11476,6 +11405,8 @@ msgid ""
"Unable to find the specified Makefile. You need to specify the path to an "
"existing Makefile for use with the 'Makefile Integration' feature."
msgstr ""
+"Не вдалось знайти вказаний Makefile. Слід вказати шлях до Makefile, "
+"який використовуватиметься з засобом 'Інтеграція Makefile'."
#: ../src/addins/MonoDevelop.Autotools/MakefileProjectServiceExtension.cs:4
msgid "Error resolving Makefile based project references for solution {0}"
@@ -11486,9 +11417,8 @@ msgid "Updating project from Makefile"
msgstr "Проект оновлюється з Makefile"
#: ../src/addins/MonoDevelop.Autotools/MakefileProjectServiceExtension.cs:11
-#, fuzzy
msgid "\tError loading Makefile for project {0}"
-msgstr "Не вдалось завантажити Makefile для проекту {0}"
+msgstr "\tНе вдалось завантажити Makefile для проекту {0}"
#: ../src/addins/MonoDevelop.Autotools/MakefileProjectServiceExtension.cs:15
msgid "Error saving to Makefile ({0}) for project {1}"
@@ -11829,7 +11759,7 @@ msgstr ""
#: ../src/addins/MonoDevelop.Autotools/gtk-gui/MonoDevelop.Autotools.TarballBuilderEditorWidget.cs:1
msgid "Edit configure switches"
-msgstr ""
+msgstr "Редагувати параметри конфігурації"
#: ../src/addins/MonoDevelop.Autotools/PropertyProvider.cs:3
msgid "Include in Makefile"
@@ -11858,6 +11788,9 @@ msgid ""
"configurations can be selected via the '--config' option of the generated "
"configure script."
msgstr ""
+"Виберіть типову конфігурацію, яку будуватиме Makefile. Інші "
+"конфігурації можна вибрати параметром '--config' у створеному "
+"скрипті конфігурації."
#: ../src/addins/MonoDevelop.Autotools/gtk-gui/MonoDevelop.Autotools.MakefileSwitchEditorWidget.cs:1
msgid "<b>Switch list</b>"
@@ -11911,9 +11844,8 @@ msgid "Web Service References"
msgstr "Посилання веб-сервісу"
#: ../src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.NodeBuilders/WebReferenceFolderNodeBuilder.cs:1
-#, fuzzy
msgid "Web Services"
-msgstr "Веб-сервіс"
+msgstr "Веб-сервіси"
#: ../src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.NodeBuilders/WebReferenceFolderNodeBuilder.cs:1
msgid "Web References"
@@ -12007,9 +11939,8 @@ msgid "Credentials"
msgstr "Реєстраційні дані"
#: ../src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Dialogs/WCFConfigWidget.cs:2
-#, fuzzy
msgid "Task-based"
-msgstr "Завдання"
+msgstr "На основі завдань"
#: ../src/addins/MonoDevelop.WebReferences/gtk-gui/MonoDevelop.WebReferences.Dialogs.WCFConfigWidget.cs:2
msgid "Dictionary type:"
@@ -12025,7 +11956,7 @@ msgstr "Рівень доступу:"
#: ../src/addins/MonoDevelop.WebReferences/gtk-gui/MonoDevelop.WebReferences.Dialogs.WCFConfigWidget.cs:2
msgid "Generate Asynchronous:"
-msgstr ""
+msgstr "Генерувати асинхронно:"
#: ../src/addins/MonoDevelop.WebReferences/gtk-gui/MonoDevelop.WebReferences.Dialogs.WCFConfigWidget.cs:2
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:3
@@ -12038,13 +11969,12 @@ msgid "Internal"
msgstr "Внутрішні"
#: ../src/addins/MonoDevelop.WebReferences/gtk-gui/MonoDevelop.WebReferences.Dialogs.WCFConfigWidget.cs:2
-#, fuzzy
msgid "No"
-msgstr "Немає"
+msgstr "Ні"
#: ../src/addins/MonoDevelop.WebReferences/gtk-gui/MonoDevelop.WebReferences.Dialogs.WCFConfigWidget.cs:2
msgid "Async"
-msgstr ""
+msgstr "Асинхронно"
#: ../src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.addin.xml:3
msgid "Web Reference"
@@ -12097,7 +12027,6 @@ msgstr "_Знайти посилання"
#: ../src/addins/CSharpBinding/CSharpBinding.addin.xml:3
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/ExtractMethod/ExtractMethodCodeRefactoringProvider.cs:8
-#, fuzzy
msgid "Extract Method"
msgstr "Видобути метод"
@@ -12168,6 +12097,9 @@ msgid ""
"Creates a C# library that can be used in Windows, Mac, Silverlight, Windows "
"Phone, Xamarin.iOS and Xamarin.Android."
msgstr ""
+"Створити бібліотеку C#, яку можна використати у Windows, Mac, Silverlight, "
+"Windows "
+"Phone, Xamarin.iOS і Xamarin.Android."
#: ../src/addins/CSharpBinding/templates/SharedAssetsProject.xpt.xml:0
#, fuzzy
@@ -12176,7 +12108,7 @@ msgstr "Спільний об'єкт"
#: ../src/addins/CSharpBinding/templates/SharedAssetsProject.xpt.xml:0
msgid "Creates a project that allows sharing files between projects"
-msgstr ""
+msgstr "Створити проект, який дозволяє поширювати файли між проектами"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs:19
msgid "Invalid code page number."
@@ -12204,7 +12136,7 @@ msgstr "x64"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CodeGenerationPanelWidget.cs:2
msgid "Itanium"
-msgstr ""
+msgstr "Itanium"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CodeGenerationPanelWidget.cs:2
msgid "Full"
@@ -12212,7 +12144,7 @@ msgstr "Повне"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CodeGenerationPanelWidget.cs:2
msgid "Symbols only"
-msgstr ""
+msgstr "Лише символи"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CodeGenerationPanelWidget.cs:2
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs:2
@@ -12252,7 +12184,7 @@ msgstr "Трактувати попередження як _помилки"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CompilerOptionsPanelWidget.cs:2
msgid "Do not reference mscorlib.dll"
-msgstr ""
+msgstr "Не посилатися на mscorlib.dll"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Project.CompilerOptionsPanelWidget.cs:2
msgid "<b>Language Options</b>"
@@ -12288,35 +12220,31 @@ msgstr "Назва _профілю:"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Formatting.NewFormattingProfileDialog.cs:2
msgid "_Initialize from profile:"
-msgstr ""
+msgstr "_Ініціалізувати з профілю:"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:4
msgid "leftmost column"
-msgstr ""
+msgstr "найлівіший стовпчик"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:4
-#, fuzzy
msgid "normal placement"
-msgstr "_Форматування документа"
+msgstr "звичайне розташування"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:4
msgid "one indent less"
-msgstr ""
+msgstr "на рівень нижче"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:5
-#, fuzzy
msgid "ignore"
-msgstr "Знехтувати"
+msgstr "нехтувати"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:5
-#, fuzzy
msgid "remove"
-msgstr "Вилучити"
+msgstr "видалити"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:5
-#, fuzzy
msgid "single"
-msgstr "Відсутній"
+msgstr "одинарний"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:7
msgid "Show built-in profile"
@@ -12337,116 +12265,104 @@ msgstr "Нові рядкиПросмотреть список"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:7
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Formatting.CSharpFormattingProfileDialog.cs:2
-#, fuzzy
msgid "Spacing"
-msgstr "Трасування"
+msgstr "Інтервали"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:7
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Formatting.CSharpFormattingProfileDialog.cs:2
msgid "Wrapping"
-msgstr ""
+msgstr "Перенесення"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:10
-#, fuzzy
msgid "Indent block contents"
-msgstr "Відступ вмісту"
+msgstr "Відступ вмісту блока"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:10
msgid "Indent open and close braces"
-msgstr ""
+msgstr "Відступ відкритих і закритих фігурних дужок"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:10
-#, fuzzy
msgid "Indent case contents"
-msgstr "Відступ вмісту"
+msgstr "Відступ вмісту case"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:10
-#, fuzzy
msgid "Indent case labels"
-msgstr "Видалити мітку case"
+msgstr "Відступ міток case"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:10
-#, fuzzy
msgid "Label indentation"
-msgstr "Відступи"
+msgstr "Відступи міток"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:12
-#, fuzzy
msgid "New line options for braces"
-msgstr "Новий рядок після відкритої квадратної дужки"
+msgstr "Параметри нового рядка для фігурних дужок"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:12
-#, fuzzy
msgid "Place open brace on new line for types"
-msgstr "Помістити 'else' у новому рядку"
+msgstr "Помістити відкриту фігурну дужку в новому рядку для типів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:12
-#, fuzzy
msgid "Place open brace on new line for methods"
-msgstr "Помістити 'else' у новому рядку"
+msgstr "Помістити відкриту фігурну дужку в новому рядку для методів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:12
msgid "Place open brace on new line for properties"
-msgstr ""
+msgstr "Помістити відкриту фігурну дужку в новому рядку для властивостей"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:13
msgid "Place open brace on new line for property accessors"
msgstr ""
+"Помістити відкриту фігурну дужку в новому рядку для методів доступу до "
+"властивостей"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:15
msgid "Place open brace on new line for anonymous methods"
-msgstr ""
+msgstr "Помістити відкриту фігурну дужку в новому рядку для анонімних методів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:15
msgid "Place open brace on new line for control blocks"
-msgstr ""
+msgstr "Помістити відкриту фігурну дужку в новому рядку для керувальних блоків"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:15
msgid "Place open brace on new line for anonymous types"
-msgstr ""
+msgstr "Помістити відкриту фігурну дужку в новому рядку для анонімних типів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:15
-#, fuzzy
msgid "Place open brace on new line for object initializers"
-msgstr "Зайва кома при ініціалізації об'єкта"
+msgstr ""
+"Помістити відкриту фігурну дужку в новому рядку для ініціалізаторів об'єктів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:15
msgid "Place open brace on new line for lambda expression"
-msgstr ""
+msgstr "Помістити відкриту фігурну дужку в новому рядку для лямбда-виразів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:16
msgid "New line options for keywords"
-msgstr ""
+msgstr "Параметри нового рядка для ключових слів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:16
-#, fuzzy
msgid "Place \"else\" on new line"
msgstr "Помістити 'else' у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:16
-#, fuzzy
msgid "Place \"catch\" on new line"
msgstr "Помістити 'catch' у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:16
-#, fuzzy
msgid "Place \"finally\" on new line"
msgstr "Помістити 'finally' у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:17
-#, fuzzy
msgid "New line options for expressions"
-msgstr "Заперечити вираз 'is'"
+msgstr "Параметри нового рядка для виразів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:17
-#, fuzzy
msgid "Place members in object initializers on new line"
-msgstr "Помістити ініціалізатори масиву у новому рядку"
+msgstr "Помістити члени в ініціалізаторах об'єктів у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:17
-#, fuzzy
msgid "Place members in anonymous types on new line"
-msgstr "Помістити вкладені інструкції у новому рядку"
+msgstr "Помістити члени в анонімних типах у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:17
#, fuzzy
@@ -12454,9 +12370,8 @@ msgid "Place query expression clauses on new line"
msgstr "Помістити ініціалізатори масиву у новому рядку"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:25
-#, fuzzy
msgid "Set spacing for method declarations"
-msgstr "Оголошення методів"
+msgstr "Задати пропуски для оголошень методів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:25
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:27
@@ -12474,14 +12389,12 @@ msgid "Insert space within empty argument list parentheses"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:27
-#, fuzzy
msgid "Set spacing for method calls"
-msgstr "Перетворити на виклик статичного методу"
+msgstr "Задати пропуски для викликів методів"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:28
-#, fuzzy
msgid "Set other spacing options"
-msgstr "Програми для налаштувань"
+msgstr "Встановити інші параметри пропусків"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:28
msgid "Insert space after keywords in control flow statements"
@@ -12511,37 +12424,32 @@ msgstr "Порожнє оголошення простору назв є зай
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:31
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
-#, fuzzy
msgid "Set spacing for brackets"
-msgstr "у квадратних дужках"
+msgstr "Задати відступи для квадратних дужок"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:31
-#, fuzzy
msgid "Insert space before open square bracket"
-msgstr "перед відкритою квадратною дужкою"
+msgstr "Вставити пропуск перед відкритою квадратною дужкою"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:31
msgid "Insert space within empty square brackets"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:31
-#, fuzzy
msgid "Insert space within square brackets"
-msgstr "Вставляти парні _дужки"
+msgstr "Вставити пропуск у квадратних дужках"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
msgid "Insert space after colon for base or interface in type declaration"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
-#, fuzzy
msgid "Insert space after comma"
-msgstr "Вставити після"
+msgstr "Вставити пропуск після коми"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
-#, fuzzy
msgid "Insert space after dot"
-msgstr "Вставити після"
+msgstr "Вставити пропуск після крапки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
msgid "Insert space after semicolon in \"for\" statement"
@@ -12552,14 +12460,12 @@ msgid "Insert space before colon for base or interface in type declaration"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
-#, fuzzy
msgid "Insert space before comma"
-msgstr "Вставити перед"
+msgstr "Вставити перед комою"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
-#, fuzzy
msgid "Insert space before dot"
-msgstr "Вставити перед"
+msgstr "Вставити пропуск перед крапкою"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs:32
msgid "Insert space before semicolon in \"for\" statement"
@@ -12591,23 +12497,20 @@ msgid "_Category:"
msgstr "_Категорія:"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Formatting.CSharpFormattingProfileDialog.cs:2
-#, fuzzy
msgid "NewLines"
-msgstr "Нові рядкиПросмотреть список"
+msgstr "НовіРядки"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Formatting.CSharpFormattingProfileDialog.cs:2
-#, fuzzy
msgid "Style"
-msgstr "Стиль:"
+msgstr "Стиль"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs:63
msgid "No region"
-msgstr ""
+msgstr "Немає ділянки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs:10
-#, fuzzy
msgid "Create new method"
-msgstr "Створити метод"
+msgstr "Створити новий метод"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/CreateConstructorGenerator.cs:32
msgid "Constructor"
@@ -12615,7 +12518,7 @@ msgstr "Конструктор"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/CreateConstructorGenerator.cs:33
msgid "Select members to be initialized by the constructor."
-msgstr ""
+msgstr "Виберіть члени, що мають ініціалізуватися в конструкторі."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/OverrideMembersGenerator.cs:3
msgid "Override members"
@@ -12623,7 +12526,7 @@ msgstr "Замістити члени"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/OverrideMembersGenerator.cs:4
msgid "Select members to be overridden."
-msgstr ""
+msgstr "Виберіть члени, що будуть заміщені."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/PropertyGenerator.cs:2
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ReadonlyPropertyGenerator.cs:2
@@ -12637,11 +12540,11 @@ msgstr "Реалізація ToString()"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ToStringGenerator.cs:4
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/WriteLineGenerator.cs:2
msgid "Select members to be outputted."
-msgstr ""
+msgstr "Виберіть члени для виведення."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/WriteLineGenerator.cs:2
msgid "WriteLine call"
-msgstr ""
+msgstr "Виклик WriteLine"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CodeGeneration.GenerateCodeWindow.cs:2
msgid "GenerateCodeWindow"
@@ -12657,15 +12560,15 @@ msgstr "Властивості лише для читання"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/RaiseEventMethodGenerator.cs:3
msgid "Event OnXXX method"
-msgstr ""
+msgstr "Подія методу OnXXX"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/RaiseEventMethodGenerator.cs:4
msgid "Select event to generate the method for."
-msgstr ""
+msgstr "Виберіть подію для якої створюється метод."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp/AstAmbience.cs:4
msgid "(abstract)"
-msgstr ""
+msgstr "(абстрактний)"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp/AstAmbience.cs:4
msgid "(partial)"
@@ -12690,7 +12593,7 @@ msgstr "Часткові методи"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/PartialGenerator.cs:4
msgid "Select methods to be implemented."
-msgstr ""
+msgstr "Виберіть метод, який буде реалізовано."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ExportCodeGenerator.cs:17
msgid "Implement protocol members"
@@ -12699,7 +12602,7 @@ msgstr "Реалізувати члени протоколу"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ExportCodeGenerator.cs:18
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ExportCodeGenerator.cs:21
msgid "Select protocol members to implement"
-msgstr ""
+msgstr "Виберіть члени протоколу для реалізації"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/ExportCodeGenerator.cs:20
msgid "Implement required protocol members"
@@ -12736,7 +12639,7 @@ msgstr "Параметри схеми документа"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.ClassOutline.OutlineSortingPreferencesDialog.cs:2
msgid "Group sorting order when grouping is enabled:"
-msgstr ""
+msgstr "Порядок сортування груп, якщо групування увімкнене:"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.ClassOutline/OutlineSettings.cs:3
msgid "Regions"
@@ -12807,9 +12710,8 @@ msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs:14
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs:68
-#, fuzzy
msgid "In _Document"
-msgstr "Документ"
+msgstr "У _документі"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs:20
msgid "Refactor"
@@ -12820,18 +12722,16 @@ msgid "{0}, Line {1}"
msgstr "{0}, рядок {1}"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs:28
-#, fuzzy
msgid "Change '{0}' to '{1}.{2}'"
-msgstr "Перейменувати '{0}' на '{1}'"
+msgstr "Замінити '{0}' на '{1}.{2}'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/Async/CSharpConvertToAsyncMethodCodeFixProvider.cs:8
msgid "Make {0} return Task instead of void"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/Async/CSharpAddAwaitCodeFixProvider.cs:17
-#, fuzzy
msgid "Insert 'await'"
-msgstr "Додати вкладку"
+msgstr "Вставити 'await'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/Async/CSharpAddAsyncCodeFixProvider.cs:16
msgid "Make async"
@@ -12846,9 +12746,8 @@ msgid "Move type to file '{0}'"
msgstr "Перенести тип у файл '{0}'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs:9
-#, fuzzy
msgid "Implement Abstract Class"
-msgstr "Реалізувати інтерфейс"
+msgstr "Реалізувати абстрактний rkfc"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs:12
#, fuzzy
@@ -12866,19 +12765,17 @@ msgid "Extract Method + Local"
msgstr "Видобути метод"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/SimplifyTypeNames/SimplifyTypeNamesCodeFixProvider.cs:11
-#, fuzzy
msgid "Simplify name '{0}'"
-msgstr "Пропущено '{0}'"
+msgstr "Спростити назву '{0}'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/SimplifyTypeNames/SimplifyTypeNamesCodeFixProvider.cs:12
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs:4
msgid "Simplify member access '{0}'"
-msgstr ""
+msgstr "Спростити доступ до члена '{0}'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/SimplifyTypeNames/SimplifyTypeNamesCodeFixProvider.cs:13
-#, fuzzy
msgid "Remove 'this' qualification"
-msgstr "Вилучити 'this'"
+msgstr "Вилучити кваліфікатор 'this'"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/RemoveUnnecessaryUsings/RemoveUnnecessaryUsingsCodeFixProvider.cs:7
#, fuzzy
@@ -12903,14 +12800,12 @@ msgstr ""
"Директива using не використовується у коді і може бути безпечно вилучена."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs:2
-#, fuzzy
msgid "Name can be simplified."
-msgstr "Тип можна спростити до '{0}?'"
+msgstr "Назву можна спростити."
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs:2
-#, fuzzy
msgid "Simplify Names"
-msgstr "Спростити вираз LINQ"
+msgstr "Спростити назви"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs:5
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerErrors/ProhibitedModifiersIssue.cs:15
@@ -12951,7 +12846,7 @@ msgstr "Структури"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:2
msgid "Enums"
-msgstr ""
+msgstr "Переліки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:2
msgid "Interfaces"
@@ -12964,7 +12859,7 @@ msgstr "Делегати"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:2
#: ../src/addins/Xml/Formatting/XmlFormattingPolicy.cs:2
msgid "Attributes"
-msgstr ""
+msgstr "Атрибути"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:2
msgid "Event Arguments"
@@ -13020,11 +12915,11 @@ msgstr "Локальні константи"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:2
msgid "Labels"
-msgstr ""
+msgstr "Мітки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:3
msgid "Private"
-msgstr ""
+msgstr "Приватний"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionEditRuleDialog.cs:3
msgid "Protected"
@@ -13064,7 +12959,7 @@ msgstr "Стиль:"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Diagnostics.InconsistentNaming.NameConventionEditRuleDialog.cs:2
msgid "Suffix:"
-msgstr ""
+msgstr "Суфікс:"
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Diagnostics.InconsistentNaming.NameConventionEditRuleDialog.cs:2
msgid "Optional Prefixes:"
@@ -13080,16 +12975,15 @@ msgstr ""
#: ../src/addins/CSharpBinding/gtk-gui/MonoDevelop.CSharp.Diagnostics.InconsistentNaming.NameConventionEditRuleDialog.cs:2
msgid "Static/Non Static"
-msgstr ""
+msgstr "Статичний/не статичний"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs:1
msgid "Find Implementing Types"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs:1
-#, fuzzy
msgid "Find Derived Types"
-msgstr "Знайти класи-_нащадки"
+msgstr "Знайти типи-нащадки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs:1
msgid "Find Implementing Symbols"
@@ -13097,31 +12991,27 @@ msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs:1
msgid "Find Derived Symbols"
-msgstr ""
+msgstr "Знайти символи-нащадки"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindExtensionMethodHandler.cs:2
msgid "Find Extension Methods"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindMemberOverloadsHandler.cs:1
-#, fuzzy
msgid "Find Method Overloads"
-msgstr "Знайти перевантаження члена"
+msgstr "Знайти перевантаження методу"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindMemberOverloadsHandler.cs:1
-#, fuzzy
msgid "Find Indexer Overloads"
-msgstr "Знайти перевантаження члена"
+msgstr "Знайти перевантаження індексатора"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs:1
-#, fuzzy
msgid "Go to _Base Type"
-msgstr "Базові типи"
+msgstr "Перейти до _базового типу"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs:1
-#, fuzzy
msgid "Go to _Base Property"
-msgstr "Перетворити на автоматичну властивість"
+msgstr "Перейти до _базової властивості"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs:1
#, fuzzy
@@ -13138,9 +13028,8 @@ msgid "Go to _Interface Event"
msgstr "Назва інтерфейсу"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs:1
-#, fuzzy
msgid "Go to _Base Method"
-msgstr "До наступного слова"
+msgstr "Перейти до _базового методу"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs:1
msgid "Go to _Interface Method"
@@ -13151,9 +13040,8 @@ msgid "Go to _Base Symbol"
msgstr ""
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindProjectReferenceUsagesHandler.cs:3
-#, fuzzy
msgid "Analyzing project"
-msgstr "Збереження проектів"
+msgstr "Аналіз проекту"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs:38
msgid "file {0}"
@@ -13200,9 +13088,8 @@ msgid "method ({0})"
msgstr "метод ({0})"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs:40
-#, fuzzy
msgid "symbol ({0})"
-msgstr "метод ({0})"
+msgstr "символ ({0})"
#: ../src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/ConvertToEnum/ConvertToEnumCodeRefactoringProvider.cs:14
msgid "Create enum '{0}'"
@@ -13415,7 +13302,7 @@ msgstr "_Системний шлях:"
#: ../src/addins/MonoDevelop.Gettext/gtk-gui/MonoDevelop.Gettext.TranslationProjectOptionsDialog.cs:2
msgid "The catalog initialization string should look like:"
-msgstr ""
+msgstr "Рядок ініціалізації каталогу має виглядати, як:"
#: ../src/addins/MonoDevelop.Gettext/gtk-gui/MonoDevelop.Gettext.TranslationProjectOptionsDialog.cs:2
msgid "<b>Init String</b>"
@@ -13498,15 +13385,15 @@ msgstr ""
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:19
msgid "{0:#00.00}% Translated"
-msgstr ""
+msgstr "Перекладено {0:#00.00}%"
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Translation for '{0}' doesn't end with whitespace ' '."
-msgstr ""
+msgstr "Переклад для '{0}' не завершується пропуском ' '."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Translation for '{0}' doesn't end with '.'."
-msgstr ""
+msgstr "Переклад для '{0}' не завершується '.'."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Casing mismatch in '{0}'"
@@ -13514,15 +13401,15 @@ msgstr ""
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Original string '{0}' contains '_', translation doesn't."
-msgstr ""
+msgstr "Оригінальний рядок '{0}' містить '_', а переклад - ні."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Original string '{0}' doesn't contain '_', translation does."
-msgstr ""
+msgstr "Оригінальний рядок '{0}' не містить '_', а переклад - так."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:23
msgid "Original string '{0}' contains '{1}', translation doesn't."
-msgstr ""
+msgstr "Оригінальний рядок '{0}' містить '{1}', а переклад - ні."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/POEditorWidget.cs:20
msgid "{0} Missing Message"
@@ -13596,7 +13483,7 @@ msgstr "Пошук перекладів"
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/PropertyProvider.cs:4
msgid "Include this file in the translation scan."
-msgstr ""
+msgstr "Включити цей файл у пошук для перекладу."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/PropertyProvider.cs:4
msgid "Gettext translation"
@@ -13606,10 +13493,11 @@ msgstr "Переклад gettext"
msgid ""
"Select the languages you want to support (more languages can be added later):"
msgstr ""
+"Виберіть мови, які потрібно підтримувати (пізніше можна буде додати інші):"
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/StringEscaping.cs:2
msgid "Invalid character '{0}' in translatable string: '{1}'"
-msgstr ""
+msgstr "Некоректний символ '{0}' у рядку для перекладу: '{1}'"
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/StringEscaping.cs:2
msgid "Invalid escape sequence '{0}' in string: '{1}'"
@@ -13645,7 +13533,7 @@ msgstr "_Пошук перекладів"
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.addin.xml:2
msgid "Include this file in the translations scan."
-msgstr ""
+msgstr "Включити цей файл у пошук для перекладу."
#: ../src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.addin.xml:2
msgid "PO Files"
@@ -13936,33 +13824,39 @@ msgstr "Класи символів"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "[character_group]"
-msgstr ""
+msgstr "[група_символів]"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
"Positive character group.\n"
"Matches any character in the specified character group."
msgstr ""
+"Позитивна група символів.\n"
+"Відповідає будь-якому символу зі вказаної групи."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "[^character_group]"
-msgstr ""
+msgstr "[^група_символів]"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
"Negative character group.\n"
"Matches any character not in the specified character group."
msgstr ""
+"Негативна група символів.\n"
+"Відповідає будь-якому символу, відсутньому у вказаній групі."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "[firstCharacter-lastCharacter]"
-msgstr ""
+msgstr "[першийСимвол-останнійСимвол]"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
"Character range.\n"
"Matches any character in a range of characters."
msgstr ""
+"Діапазон символів.\n"
+"Відповідає будь-якому символу з діапазону."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "."
@@ -14003,7 +13897,7 @@ msgstr "\\w"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "Matches any word character."
-msgstr ""
+msgstr "Відповідає будь-якому словесному символу."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\W"
@@ -14011,7 +13905,7 @@ msgstr "\\W"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "Matches any nonword character."
-msgstr ""
+msgstr "Відповідає будь-якому несловесному символу."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\s"
@@ -14058,6 +13952,8 @@ msgid ""
"Specifies that the match must occur at the beginning of \n"
"the string or the beginning of the line."
msgstr ""
+"Вказує, що відповідність повинна бути розташована \n"
+"на початку тексту або рядка."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "$"
@@ -14069,6 +13965,8 @@ msgid ""
"string, before \\n at the end of the string, or at the \n"
"end of the line."
msgstr ""
+"Вказує, що відповідність повинна бути розташована \n"
+"в кінці тексту, перед \\n в кінці тексту або в кінці рядка."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\A"
@@ -14079,6 +13977,8 @@ msgid ""
"Specifies that the match must occur at the beginning of \n"
"the string (ignores the Multiline option)."
msgstr ""
+"Вказує, що відповідність повинна бути розташована \n"
+"на початку тексту (нехтується параметр Multiline)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\Z"
@@ -14090,6 +13990,9 @@ msgid ""
"string or before \\n at the end of the string (ignores \n"
"the Multiline option)."
msgstr ""
+"Вказує, що відповідність повинна бути розташована \n"
+"в кінці тексту або перед \\n в кінці тексту (нехтується \n"
+"параметр Multiline)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\z"
@@ -14100,6 +14003,8 @@ msgid ""
"Specifies that the match must occur at the end of the \n"
"string (ignores the Multiline option)."
msgstr ""
+"Вказує, що відповідність повинна бути розташована \n"
+"в кінці тексту (нехтується параметр Multiline)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "\\G"
@@ -14211,6 +14116,8 @@ msgid ""
"Specifies the first match that consumes as few repeats \n"
"as possible (equivalent to lazy *)."
msgstr ""
+"Вказує на перший збіг, який використовує якомога менше \n"
+"повторів (те саме, що лінива *)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "+?"
@@ -14221,6 +14128,8 @@ msgid ""
"Specifies as few repeats as possible, but at least one \n"
"(equivalent to lazy +)."
msgstr ""
+"Вказує на якомога менше повторів, але принаймні \n"
+"один (те саме, що лінивий +)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "??"
@@ -14228,7 +14137,7 @@ msgstr "??"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "Specifies zero repeats if possible, or one (lazy ?)."
-msgstr ""
+msgstr "Вказує на відсутність повторів, якщо можливо, або один (лінивий ?)."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "{n}?"
@@ -14236,7 +14145,7 @@ msgstr "{n}?"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "Equivalent to {n} (lazy {n})."
-msgstr ""
+msgstr "Те саме, що {n} (лінивий {n})."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "{n,}?"
@@ -14247,6 +14156,8 @@ msgid ""
"Specifies as few repeats as possible, \n"
"but at least n (lazy {n,})."
msgstr ""
+"Вказує на якомога менше повторів, але принаймні \n"
+"n (ліниве {n,})."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "{n,m}?"
@@ -14257,6 +14168,8 @@ msgid ""
"Specifies as few repeats as possible \n"
"between n and m (lazy {n,m})."
msgstr ""
+"Вказує на якомога менше повторів \n"
+"між n і m (ліниве {n,m})."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "Grouping Constructs"
@@ -14413,20 +14326,24 @@ msgid ""
"Matches any one of the terms separated by the | (vertical bar) character; \n"
"for example, cat|dog|tiger. The leftmost successful match wins."
msgstr ""
+"Збіг з одним з термінів, відокремлених символом | (вертикальна лінія); \n"
+"наприклад, кіт|собака|тигр. Перевага надається першому зліва збігу."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "(?(expression)yes|no)"
-msgstr ""
+msgstr "(?(вираз)так|ні)"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
"Matches the 'yes' part if the expression matches at this point; otherwise, "
"matches the 'no' part."
msgstr ""
+"Означає частину 'так', якщо вираз відповідає даній точні; інакше, "
+"означає частину 'ні'."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "(?(name)yes|no)"
-msgstr ""
+msgstr "(?(назва)так|ні)"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
@@ -14443,7 +14360,7 @@ msgstr "Різне"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "(?imnsx-imnsx)"
-msgstr ""
+msgstr "(?imnsx-imnsx)"
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid ""
@@ -14460,6 +14377,8 @@ msgid ""
"Inline comment inserted within a regular expression. \n"
"The comment terminates at the first closing parenthesis character."
msgstr ""
+"Лінійний коментар, вставлений у регулярний вираз. \n"
+"Коментар завершується першою закритою дужкою."
#: ../src/addins/MonoDevelop.RegexToolkit/RegexElements.xml:1
msgid "# [to end of line]"
@@ -14470,6 +14389,8 @@ msgid ""
"X-mode comment. The comment begins at an unescaped # and \n"
"continues to the end of the line."
msgstr ""
+"Коментар режиму X. Починається символом # без риски і \n"
+"продовжується до кінця рядка."
#: ../src/addins/CBinding/CBinding.addin.xml:1
msgid "C++ Files"
@@ -14631,7 +14552,7 @@ msgstr "Попередньо скомпільовані заголовки"
#: ../src/addins/CBinding/Compiler/GNUCompiler.cs:7
msgid "Generating binary \"{0}\" from object files"
-msgstr ""
+msgstr "Створення двійкового \"{0}\" з об'єктних файлів"
#: ../src/addins/CBinding/Compiler/GNUCompiler.cs:7
msgid "Generating static library {0} from object files"
@@ -14651,7 +14572,7 @@ msgstr "попередження"
#: ../src/addins/CBinding/Compiler/GNUCompiler.cs:14
msgid "note"
-msgstr ""
+msgstr "зауваження"
#: ../src/addins/CBinding/Compiler/GNUCompiler.cs:17
msgid "Build failed - check build output for details"
@@ -14696,7 +14617,7 @@ msgstr "Визначити символи:"
#: ../src/addins/CBinding/gtk-gui/CBinding.CodeGenerationPanel.cs:2
msgid "Extra Linker Options"
-msgstr ""
+msgstr "Додаткові параметри редактора зв'язків"
#: ../src/addins/CBinding/gtk-gui/CBinding.CodeGenerationPanel.cs:2
msgid "Extra Compiler Options"
@@ -14729,7 +14650,7 @@ msgstr "Шляхи"
#: ../src/addins/CBinding/gtk-gui/CBinding.CompilerPanel.cs:2
msgid "Use ccache"
-msgstr ""
+msgstr "Використовувати ccache"
#: ../src/addins/CBinding/gtk-gui/CBinding.EditPackagesDialog.cs:2
msgid "Edit packages"
@@ -14781,7 +14702,7 @@ msgstr "Стандартний компілятор C++:"
#: ../src/addins/CBinding/gtk-gui/CBinding.GeneralOptionsPanel.cs:2
msgid "CTags: "
-msgstr ""
+msgstr "CTags: "
#: ../src/addins/CBinding/gtk-gui/CBinding.GeneralOptionsPanel.cs:2
msgid "Parse Local Variables"
@@ -14809,21 +14730,19 @@ msgstr "Бібліотеки:"
#: ../src/addins/CBinding/gtk-gui/CBinding.PackageDetails.cs:2
msgid "CFlags:"
-msgstr ""
+msgstr "CFlags:"
#: ../src/addins/CBinding/Parser/CDocumentParser.cs:3
msgid "(Global Scope)"
-msgstr ""
+msgstr "(Глобальна видимість)"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs:31
-#, fuzzy
msgid "<b>Warning</b>: {0}"
-msgstr "<b>Попередження розбору</b>: {0}"
+msgstr "<b>Попередження</b>: {0}"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs:31
-#, fuzzy
msgid "<b>Error</b>: {0}"
-msgstr "<b>Помилка розбору</b>: {0}"
+msgstr "<b>Помилка</b>: {0}"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs:37
msgid "_Input Methods"
@@ -14841,7 +14760,7 @@ msgstr "Не вдалось зберегти файл"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:108
msgid "The file was marked as read only. Should the file be overwritten?"
-msgstr ""
+msgstr "Файл позначений, як доступний лише для читання. Перезаписати його?"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:108
msgid "Operation failed."
@@ -14858,6 +14777,10 @@ msgid ""
"Do you want to resave this file as Unicode ?\n"
"You can choose another encoding in the 'save as' dialog."
msgstr ""
+"Деякі символи Юнікоду, що є у цьому файлі, неможливо зберегти у поточному "
+"кодуванні.\n"
+"Бажаєте зберегти цей файл в Юнікоді?\n"
+"У діалозі \"Зберегти як\" ви можете вибрати й інше кодування."
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:108
msgid "Save as Unicode"
@@ -14873,7 +14796,7 @@ msgstr "Трапився збій під час друку."
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:185
msgid "Press F2 to focus"
-msgstr ""
+msgstr "Натисніть 'F2' для фокусування"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:185
msgid "Clipboard ring"
@@ -15065,11 +14988,11 @@ msgstr "Дозволити _часткове приховування коду"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.GeneralOptionsPanel.cs:21
msgid "Fold #_regions by default"
-msgstr ""
+msgstr "Типово #_ділянки згорнуті"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.GeneralOptionsPanel.cs:21
msgid "Fold _comments by default"
-msgstr ""
+msgstr "Типово _коментарі згорнуті"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.GeneralOptionsPanel.cs:21
msgid "<b>Appearance</b>"
@@ -15081,7 +15004,7 @@ msgstr "_Переносити по словах"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.GeneralOptionsPanel.cs:21
msgid "_Use anti aliasing"
-msgstr ""
+msgstr "_Застосувати згладжування"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs:20
msgid "<b>General</b>"
@@ -15105,7 +15028,7 @@ msgstr "Під_свічувати поточний рядок"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs:20
msgid "Show _column ruler"
-msgstr ""
+msgstr "Показувати край колонки"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs:20
msgid "_Enable animations"
@@ -15177,7 +15100,7 @@ msgstr "_Режим відступів:"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.BehaviorPanel.cs:27
msgid "Interpret tab _keystroke as reindent command"
-msgstr ""
+msgstr "При натисканні Tab виправляти відступи"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.BehaviorPanel.cs:27
msgid "<b>Navigation</b>"
@@ -15200,7 +15123,6 @@ msgid "Page %N of %Q"
msgstr "Сторінка %N з %Q"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.ColorShemeEditor.cs:35
-#, fuzzy
msgid "Edit color sheme"
msgstr "Редагувати колірну схему"
@@ -15278,7 +15200,7 @@ msgstr "Включити у список завершення _ключові с
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.CompletionOptionsPanel.cs:19
msgid "Include _code snippets in completion list"
-msgstr ""
+msgstr "Включити у список завершення _сніппети коду"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.CompletionOptionsPanel.cs:19
msgid "_Show import items"
@@ -15298,11 +15220,11 @@ msgstr "_Відкриту і закриту"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.CompletionAppearancePanel.cs:15
msgid "_Filter members by [EditorBrowsable] attribute"
-msgstr ""
+msgstr "_Фільтрувати члени за атрибутом [EditorBrowsable]"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.CompletionAppearancePanel.cs:15
msgid "_Show Normal members only"
-msgstr ""
+msgstr "Показати лише _звичайні члени"
#: ../src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.CompletionAppearancePanel.cs:15
msgid "<i>EditorBrowsableState.Always</i>"
@@ -15351,11 +15273,11 @@ msgstr "Навігація у коді"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:8
msgid "Next Issue in File"
-msgstr ""
+msgstr "Наступна проблема у файлі"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:8
msgid "Previous Issue in File"
-msgstr ""
+msgstr "Попередня проблема у файлі"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:8
msgid "Next Error"
@@ -15367,11 +15289,11 @@ msgstr "Попередня помилка"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:9
msgid "_Top"
-msgstr ""
+msgstr "В_горі"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:9
msgid "_Bottom"
-msgstr ""
+msgstr "В_низу"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:9
msgid "_Page Up"
@@ -15398,14 +15320,12 @@ msgid "Behavior"
msgstr "Поведінка"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:14
-#, fuzzy
msgid "Code Completion"
-msgstr "Перевірка коду"
+msgstr "Завершення коду"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:14
-#, fuzzy
msgid "Appearance"
-msgstr "<b>Вигляд</b>"
+msgstr "Вигляд"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:14
msgid "Syntax Highlighting"
@@ -15413,7 +15333,7 @@ msgstr "Підсвічування синтаксису"
#: ../src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.addin.xml:15
msgid "Inspect"
-msgstr ""
+msgstr "Перевірка"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs:2
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs:4
@@ -15430,9 +15350,8 @@ msgid "All members"
msgstr "Всі члени"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:24
-#, fuzzy
msgid "Types and Members"
-msgstr "Пошук членів"
+msgstr "Типи і члени"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:25
msgid "Members"
@@ -15443,17 +15362,14 @@ msgid "IL"
msgstr "IL"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:36
-#, fuzzy
msgid "Search for types and members"
-msgstr "Пошук типів або членів"
+msgstr "Пошук типів і членів"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:36
-#, fuzzy
msgid "Search for types"
-msgstr "Пошук тексту"
+msgstr "Пошук типів"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:36
-#, fuzzy
msgid "Search for members"
msgstr "Пошук членів"
@@ -15467,12 +15383,11 @@ msgstr "Член"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:57
msgid "Declaring Type"
-msgstr ""
+msgstr "Оголошення типу"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:57
-#, fuzzy
msgid "Results"
-msgstr "Результат"
+msgstr "Результати"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:58
#, fuzzy
@@ -15496,9 +15411,8 @@ msgid "Searching type..."
msgstr "Тип пошуку..."
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:63
-#, fuzzy
msgid "Searching types and members..."
-msgstr "Пошук члена.."
+msgstr "Пошук типів і членів..."
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs:67
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DocumentationPanel.cs:3
@@ -15507,7 +15421,7 @@ msgstr "Документація відсутня."
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/DomMethodNodeBuilder.cs:5
msgid "<b>Declaring Type:</b>\t{0}"
-msgstr ""
+msgstr "<b>Оголошення типу:</b>\t{0}"
#: ../src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/DomTypeNodeBuilder.cs:4
msgid "<b>Assembly:</b>\t{0}, Version={1}"
@@ -15580,7 +15494,7 @@ msgstr "Відносний шлях цілі"
#: ../src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.Gui/PropertyProvider.cs:3
msgid "Has path references"
-msgstr ""
+msgstr "Має посилання на шлях"
#: ../src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.Gui/PropertyProvider.cs:3
msgid "Use project relative path"
@@ -15603,6 +15517,9 @@ msgid ""
"Set to 'true' if the text file contains unresolved references to paths (e.g. "
"@ProgramFiles@)"
msgstr ""
+"Встановіть 'true', якщо текстовий файл містить нерозібрані посилання на шляхи "
+"(наприклад, "
+"@ProgramFiles@)"
#: ../src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.Gui/PropertyProvider.cs:3
msgid ""
@@ -16556,7 +16473,7 @@ msgstr "тека застосунку в .desktop"
#: ../src/addins/Deployment/MonoDevelop.Deployment.Linux/app.desktop.xft.xml:0
msgid "Desktop Application Launcher"
-msgstr ""
+msgstr "Запуск стільничної програми"
#: ../src/addins/Deployment/MonoDevelop.Deployment.Linux/app.desktop.xft.xml:0
msgid "Creates a Desktop Entry file."
@@ -16577,7 +16494,7 @@ msgstr "<Стандарт>"
#: ../src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs:3
#: ../src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs:2
msgid "Desktop Entry"
-msgstr ""
+msgstr "Елемент робочого столу"
#: ../src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/MenuCategorySelectorDialog.cs:2
msgid "Additional categories"
@@ -16696,9 +16613,8 @@ msgid "Select the categories you want to assign to the desktop entry:"
msgstr "Виберіть категорії, які будуть пов'язані з цим елементом:"
#: ../src/addins/Xml/Properties/MonoDevelop.XmlEditor.addin.xml:48
-#, fuzzy
msgid "Xml Editor"
-msgstr "Шістнадцятковий редактор"
+msgstr "Редактор Xml"
#: ../src/addins/Xml/Properties/MonoDevelop.XmlEditor.addin.xml:50
msgid "Create _Schema"
@@ -16770,7 +16686,7 @@ msgstr ""
#: ../src/addins/Xml/Formatting/XmlFormattingPolicy.cs:2
msgid "Wrap attributes"
-msgstr ""
+msgstr "Переносити атрибути"
#: ../src/addins/Xml/Formatting/XmlFormattingPolicy.cs:2
msgid "Align attributes"
@@ -16815,6 +16731,7 @@ msgstr "Документ"
#: ../src/addins/Xml/Formatting/XmlFormattingPolicyPanelWidget.cs:7
msgid "Enter one or several xpath expressions to which this format applies:"
msgstr ""
+"Введіть один або декілька виразів xpath, до яких застосовується цей формат:"
#: ../src/addins/Xml/Formatting/XmlFormattingPolicyPanelWidget.cs:10
msgid "Advanced Settings"
@@ -16826,7 +16743,7 @@ msgstr "Формат #{0}"
#: ../src/addins/Xml/Formatting/XmlFormattingPolicyPanelWidget.cs:20
msgid "XPath scope:"
-msgstr ""
+msgstr "Видимість XPath:"
#: ../src/addins/Xml/Editor/XmlTextEditorExtension.cs:185
msgid "Creating schema..."
@@ -16925,9 +16842,8 @@ msgid "Show schema annotation"
msgstr "Показати анотацію схеми"
#: ../src/addins/Xml/Editor/XmlSchemasPanel.cs:49
-#, fuzzy
msgid "Schema changes could not be saved"
-msgstr "Не вдалось зберегти файл."
+msgstr "Не вдалось зберегти зміни схеми."
#: ../src/addins/Xml/Editor/XmlSchemasPanelWidget.cs:4
msgid "Built in"
@@ -16946,18 +16862,16 @@ msgid "Prefix"
msgstr "Префікс"
#: ../src/addins/Xml/Editor/XmlSchemasPanelWidget.cs:9
-#, fuzzy
msgid "<b>Registered Schema</b>"
-msgstr "<b>Зареєстровані схеми</b>"
+msgstr "<b>Зареєстрована схема</b>"
#: ../src/addins/Xml/Editor/XmlSchemasPanelWidget.cs:11
msgid "<b>Default File Associations</b>"
msgstr "<b>Стандартні відповідності файлів</b>"
#: ../src/addins/Xml/Editor/XmlSchemasPanelWidget.cs:19
-#, fuzzy
msgid "Schema '{0}' could not be loaded."
-msgstr "Не вдалось завантажити файл {0}."
+msgstr "Не вдалось завантажити схему {0}."
#: ../src/addins/Xml/Editor/XmlSchemasPanelWidget.cs:21
msgid "Schema '{0}' has no target namespace."
@@ -17049,9 +16963,8 @@ msgid "Show results pad"
msgstr "Показати панель результатів"
#: ../src/addins/NUnit/MonoDevelopNUnit.addin.xml:14
-#, fuzzy
msgid "Rerun test"
-msgstr "Запустити тест"
+msgstr "Перезапустити тест"
#: ../src/addins/NUnit/MonoDevelopNUnit.addin.xml:14
msgid "Proportional time scale"
@@ -17100,9 +17013,8 @@ msgid "Creates an NUnit library"
msgstr "Створити бібліотеку тестів NUnit."
#: ../src/addins/NUnit/Gui/TestPad.cs:5
-#, fuzzy
msgid "Run All"
-msgstr "_Перебудувати все"
+msgstr "Запустити всі"
#: ../src/addins/NUnit/Gui/TestPad.cs:5
msgid "Run all tests"
@@ -17186,6 +17098,9 @@ msgid ""
"<b>Inconclusive</b>: {3} <b>Invalid</b>: {4} <b>Ignored</b>: {5} "
"<b>Skipped</b>: {6} <b>Time</b>: {7}"
msgstr ""
+"<b>Успішно</b>: {0} <b>Невдало</b>: {1} <b>Помилок</b>: {2} "
+"<b>Непереконливо</b>: {3} <b>Невірно</b>: {4} <b>Знехтувано</b>: {5} "
+"<b>Пропущено</b>: {6} <b>Час</b>: {7}"
#: ../src/addins/NUnit/Gui/TestResultsPad.cs:16
msgid "Running tests for <b>{0}</b> configuration <b>{1}</b>"
@@ -17255,9 +17170,8 @@ msgstr ""
#: ../src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs:38
#: ../src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs:40
-#, fuzzy
msgid "Unhandled exception"
-msgstr "Прибрати _відступи"
+msgstr "Необроблений виняток"
#: ../src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs:38
msgid "Canceled"
@@ -17334,21 +17248,18 @@ msgstr "Приховати подробиці"
#: ../src/addins/MacPlatform/MacProxyCredentialProvider.cs:15
#: ../src/addins/WindowsPlatform/WindowsPlatform/WindowsProxyCredentialProvider.cs:116
-#, fuzzy
msgid "{0} needs credentials to access the proxy server {1}."
-msgstr "{1} вимагає {2} реєстраційні дані для доступу {0}."
+msgstr "{0} вимагає реєстраційні дані для доступу до проксі-сервера {1}."
#: ../src/addins/MacPlatform/MacProxyCredentialProvider.cs:15
#: ../src/addins/WindowsPlatform/WindowsPlatform/WindowsProxyCredentialProvider.cs:121
-#, fuzzy
msgid "{0} needs credentials to access {1}."
-msgstr "{1} вимагає {2} реєстраційні дані для доступу {0}."
+msgstr "{0} вимагає реєстраційні дані для доступу {1}."
#: ../src/addins/MacPlatform/MacProxyCredentialProvider.cs:16
#: ../src/addins/WindowsPlatform/WindowsPlatform/WindowsProxyCredentialProvider.cs:129
-#, fuzzy
msgid "Credentials Required"
-msgstr "Реєстраційні дані"
+msgstr "Потрібні реєстраційні дані"
#: ../src/addins/MacPlatform/MacPlatform.addin.xml:1
msgid "_Minimize"
@@ -17371,19 +17282,16 @@ msgid "_Hide Others"
msgstr "Прихо_вати інші"
#: ../src/addins/MacPlatform/MacPlatform.addin.xml:1
-#, fuzzy
msgid "Hide other applications' windows"
-msgstr "Приховати інші вікна"
+msgstr "Приховати вікна інших застосунків"
#: ../src/addins/MacPlatform/MacPlatform.addin.xml:1
-#, fuzzy
msgid "Show All"
-msgstr "Показати всі файли"
+msgstr "Показувати всі"
#: ../src/addins/MacPlatform/MacPlatform.addin.xml:1
-#, fuzzy
msgid "Show all applications' windows"
-msgstr "Показати вікно параметрів"
+msgstr "Показати вікна всіх застосунків"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs:3
msgid "Enable source analysis of open files"
@@ -17436,19 +17344,16 @@ msgid "Rename Interface"
msgstr "Перейменувати інтерфейс"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
-#, fuzzy
msgid "Rename Delegate"
-msgstr "Створити делегат"
+msgstr "Перейменувати делегат"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
-#, fuzzy
msgid "Rename Enum"
-msgstr "Перейменувати подію"
+msgstr "Перейменувати перелік"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
-#, fuzzy
msgid "Rename Struct"
-msgstr "Перейменувати групу"
+msgstr "Перейменувати структуру"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
msgid "Rename Class"
@@ -17479,14 +17384,12 @@ msgid "Rename Variable"
msgstr "Перейменувати змінну"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
-#, fuzzy
msgid "Rename Namespace"
msgstr "Перейменувати простір назв"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
-#, fuzzy
msgid "Rename Label"
-msgstr "Перейменувати поле"
+msgstr "Перейменувати напис"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.Rename/RenameItemDialog.cs:9
msgid "Rename Item"
@@ -17534,7 +17437,7 @@ msgstr "Попередження"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs:8
msgid "Info"
-msgstr ""
+msgstr "Інформація"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:5
msgid "_Find References"
@@ -17545,9 +17448,8 @@ msgid "_Find References of All Overloads"
msgstr "_Знайти посилання всіх перевантажень"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:5
-#, fuzzy
msgid "Find _Derived Symbols"
-msgstr "Знайти класи-_нащадки"
+msgstr "Знайти _символи-нащадки"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:5
msgid "Refactoring"
@@ -17562,14 +17464,12 @@ msgid "Import Symbol..."
msgstr "Імпортувати символ..."
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:7
-#, fuzzy
msgid "Export C# Code Rules to a File"
-msgstr "Експортувати політики до файлу"
+msgstr "Експортувати правила коду C# до файлу"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:7
-#, fuzzy
msgid "Generates an HTML file that contains a list of all code rules"
-msgstr "Перейменувати файл, що містить загальнодоступний клас"
+msgstr "Створити файл HTML, що містить перелік всіх правил коду"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
msgid "Show Fixes"
@@ -17577,21 +17477,19 @@ msgstr "Показати виправлення"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
msgid "Shows a list of fixes for problems at the current location"
-msgstr ""
+msgstr "Показує список виправлень проблем у поточному розташуванні"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
msgid "Source Analysis"
msgstr "Аналіз коду"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
-#, fuzzy
msgid "Code Rules"
-msgstr "Шаблони коду"
+msgstr "Правила коду"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
-#, fuzzy
msgid "Code Actions"
-msgstr "Перевірка коду"
+msgstr "Дії коду"
#: ../src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml:8
msgid "Design Guidelines"
@@ -17652,7 +17550,7 @@ msgstr "Контролер..."
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:195
msgid "Add an ASP.NET MVC controller"
-msgstr ""
+msgstr "Додати контролер ASP.NET MVC"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:197
msgid "View..."
@@ -17660,15 +17558,15 @@ msgstr "Перегляд..."
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:198
msgid "Add an ASP.NET MVC view"
-msgstr ""
+msgstr "Додати представлення ASP.NET MVC"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:204
msgid "Go To View"
-msgstr ""
+msgstr "Перейти до представлення"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:208
msgid "Add View..."
-msgstr "Додати перегляд..."
+msgstr "Додати представлення..."
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:212
msgid "Go To Controller"
@@ -17684,7 +17582,7 @@ msgstr "Користувацький компонент ASP.NET."
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:245
msgid "ASP.NET global application class"
-msgstr ""
+msgstr "Глобальний програмний клас ASP.NET"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:248
msgid "ASP.NET handler"
@@ -17720,456 +17618,456 @@ msgstr "Документ HTML"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:272
msgid "Spark View template"
-msgstr ""
+msgstr "Шаблон представлення Spark"
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:276
msgid "Typescript source code"
msgstr ""
#: ../src/addins/AspNet/Properties/MonoDevelop.AspNet.addin.xml:279
-#, fuzzy
msgid "Razor template"
-msgstr "Видалити шаблон"
+msgstr "Шаблон Razor"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Cannot_Be_Null_Or_Empty"
-msgstr ""
+msgstr "Argument_Cannot_Be_Null_Or_Empty"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_Between"
-msgstr ""
+msgstr "Argument_Must_Be_Between"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_Enum_Member"
-msgstr ""
+msgstr "Argument_Must_Be_Enum_Member"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_GreaterThan"
-msgstr ""
+msgstr "Argument_Must_Be_GreaterThan"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_GreaterThanOrEqualTo"
-msgstr ""
+msgstr "Argument_Must_Be_GreaterThanOrEqualTo"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_LessThan"
-msgstr ""
+msgstr "Argument_Must_Be_LessThan"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_LessThanOrEqualTo"
-msgstr ""
+msgstr "Argument_Must_Be_LessThanOrEqualTo"
#: ../src/addins/AspNet/Razor/EditorParserFixed/CommonResources.Designer.cs:3
msgid "Argument_Must_Be_Null_Or_Non_Empty"
-msgstr ""
+msgstr "Argument_Must_Be_Null_Or_Non_Empty"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ActiveParser_Must_Be_Code_Or_Markup_Parser"
-msgstr ""
+msgstr "ActiveParser_Must_Be_Code_Or_Markup_Parser"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Block_Type_Not_Specified"
-msgstr ""
+msgstr "Block_Type_Not_Specified"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "BlockName_Code"
-msgstr ""
+msgstr "BlockName_Code"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "BlockName_ExplicitExpression"
-msgstr ""
+msgstr "BlockName_ExplicitExpression"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CancelBacktrack_Must_Be_Called_Within_Lookahead"
-msgstr ""
+msgstr "CancelBacktrack_Must_Be_Called_Within_Lookahead"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CreateCodeWriter_NoCodeWriter"
-msgstr ""
+msgstr "CreateCodeWriter_NoCodeWriter"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_CharacterLiteral"
-msgstr ""
+msgstr "CSharpSymbol_CharacterLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_Comment"
-msgstr ""
+msgstr "CSharpSymbol_Comment"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_Identifier"
-msgstr ""
+msgstr "CSharpSymbol_Identifier"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_IntegerLiteral"
-msgstr ""
+msgstr "CSharpSymbol_IntegerLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_Keyword"
-msgstr ""
+msgstr "CSharpSymbol_Keyword"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_Newline"
-msgstr ""
+msgstr "CSharpSymbol_Newline"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_RealLiteral"
-msgstr ""
+msgstr "CSharpSymbol_RealLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_StringLiteral"
-msgstr ""
+msgstr "CSharpSymbol_StringLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "CSharpSymbol_Whitespace"
-msgstr ""
+msgstr "CSharpSymbol_Whitespace"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "EndBlock_Called_Without_Matching_StartBlock"
-msgstr ""
+msgstr "EndBlock_Called_Without_Matching_StartBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ErrorComponent_Character"
-msgstr ""
+msgstr "ErrorComponent_Character"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ErrorComponent_EndOfFile"
-msgstr ""
+msgstr "ErrorComponent_EndOfFile"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ErrorComponent_Newline"
-msgstr ""
+msgstr "ErrorComponent_Newline"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ErrorComponent_Whitespace"
-msgstr ""
+msgstr "ErrorComponent_Whitespace"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "HtmlSymbol_NewLine"
-msgstr ""
+msgstr "HtmlSymbol_NewLine"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "HtmlSymbol_RazorComment"
-msgstr ""
+msgstr "HtmlSymbol_RazorComment"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "HtmlSymbol_Text"
-msgstr ""
+msgstr "HtmlSymbol_Text"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "HtmlSymbol_WhiteSpace"
-msgstr ""
+msgstr "HtmlSymbol_WhiteSpace"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Language_Does_Not_Support_RazorComment"
-msgstr ""
+msgstr "Language_Does_Not_Support_RazorComment"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_AtInCode_Must_Be_Followed_By_Colon_Paren_Or_Identifier_Start"
msgstr ""
+"ParseError_AtInCode_Must_Be_Followed_By_Colon_Paren_Or_Identifier_Start"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_BlockComment_Not_Terminated"
-msgstr "ПомилкаРозбору_КоментарБлоку_Не_Закритий"
+msgstr "ParseError_BlockComment_Not_Terminated"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_BlockNotTerminated"
-msgstr "ПомилкаРозбору_БлокНеЗакритий"
+msgstr "ParseError_BlockNotTerminated"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Expected_CloseBracket_Before_EOF"
-msgstr "ПомилкаРозбору_Очікується_ЗакритаДужка_Перед_EOF"
+msgstr "ParseError_Expected_CloseBracket_Before_EOF"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Expected_EndOfBlock_Before_EOF"
-msgstr "ПомилкаРозбору_Очікується_КінецьБлоку_Перед_EOF"
+msgstr "ParseError_Expected_EndOfBlock_Before_EOF"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Expected_X"
-msgstr "ПомилкаРозбору_Очікується_X"
+msgstr "ParseError_Expected_X"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Helpers_Cannot_Be_Nested"
-msgstr ""
+msgstr "ParseError_Helpers_Cannot_Be_Nested"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_InheritsKeyword_Must_Be_Followed_By_TypeName"
-msgstr "ПомилкаРозбору_Після_КлючовогоСловаInherits_Потрібна_НазваТипу"
+msgstr "ParseError_InheritsKeyword_Must_Be_Followed_By_TypeName"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_InlineMarkup_Blocks_Cannot_Be_Nested"
-msgstr ""
+msgstr "ParseError_InlineMarkup_Blocks_Cannot_Be_Nested"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_InvalidOptionValue"
-msgstr "ПомилкаРозбору_НеправильнеЗначенняПараметра"
+msgstr "ParseError_InvalidOptionValue"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_MarkupBlock_Must_Start_With_Tag"
-msgstr "ПомилкаРозбору_БлокРозмітки_Має_Починатися_Тегом"
+msgstr "ParseError_MarkupBlock_Must_Start_With_Tag"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_MissingCharAfterHelperName"
-msgstr ""
+msgstr "ParseError_MissingCharAfterHelperName"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_MissingCharAfterHelperParameters"
-msgstr ""
+msgstr "ParseError_MissingCharAfterHelperParameters"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_MissingEndTag"
-msgstr "ПомилкаРозбору_ВідсутнійКінцевийТег"
+msgstr "ParseError_MissingEndTag"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_MissingOpenBraceAfterSection"
-msgstr ""
+msgstr "ParseError_MissingOpenBraceAfterSection"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_NamespaceImportAndTypeAlias_Cannot_Exist_Within_CodeBlock"
-msgstr ""
+msgstr "ParseError_NamespaceImportAndTypeAlias_Cannot_Exist_Within_CodeBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_NamespaceOrTypeAliasExpected"
-msgstr ""
+msgstr "ParseError_NamespaceOrTypeAliasExpected"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_OuterTagMissingName"
-msgstr ""
+msgstr "ParseError_OuterTagMissingName"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_RazorComment_Not_Terminated"
-msgstr ""
+msgstr "ParseError_RazorComment_Not_Terminated"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_ReservedWord"
-msgstr "ПомилкаРозбору_ЗарезервованеСлово"
+msgstr "ParseError_ReservedWord"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Sections_Cannot_Be_Nested"
-msgstr "ПомилкаРозбору_НеМожуть_Бути_Вкладеними"
+msgstr "ParseError_Sections_Cannot_Be_Nested"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_SingleLine_ControlFlowStatements_Not_Allowed"
-msgstr ""
+msgstr "ParseError_SingleLine_ControlFlowStatements_Not_Allowed"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_TextTagCannotContainAttributes"
-msgstr ""
+msgstr "ParseError_TextTagCannotContainAttributes"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected"
-msgstr "ПомилкаРозбору_Неочікувана"
+msgstr "ParseError_Unexpected"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Character_At_Helper_Name_Start"
-msgstr ""
+msgstr "ParseError_Unexpected_Character_At_Helper_Name_Start"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Character_At_Section_Name_Start"
-msgstr ""
+msgstr "ParseError_Unexpected_Character_At_Section_Name_Start"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Character_At_Start_Of_CodeBlock_CS"
-msgstr ""
+msgstr "ParseError_Unexpected_Character_At_Start_Of_CodeBlock_CS"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Character_At_Start_Of_CodeBlock_VB"
-msgstr ""
+msgstr "ParseError_Unexpected_Character_At_Start_Of_CodeBlock_VB"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock"
-msgstr ""
+msgstr "ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Keyword_After_At"
-msgstr "ПомилкаРозбору_Неочікуване_КлючовеСлово_Після_At"
+msgstr "ParseError_Unexpected_Keyword_After_At"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_Nested_CodeBlock"
-msgstr ""
+msgstr "ParseError_Unexpected_Nested_CodeBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS"
-msgstr ""
+msgstr "ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_VB"
-msgstr ""
+msgstr "ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_VB"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_UnexpectedEndTag"
-msgstr "ПомилкаРозбору_НеочікуванийКінцевийТег"
+msgstr "ParseError_UnexpectedEndTag"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_UnfinishedTag"
-msgstr "ПомилкаРозбору_НезавершенийТег"
+msgstr "ParseError_UnfinishedTag"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_UnknownOption"
-msgstr "ПомилкаРозбору_НевідомийПараметр"
+msgstr "ParseError_UnknownOption"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_Unterminated_String_Literal"
-msgstr "ПомилкаРозбору_НезакритийРядковийЛітерал"
+msgstr "ParseError_Unterminated_String_Literal"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParseError_UnterminatedHelperParameterList"
-msgstr ""
+msgstr "ParseError_UnterminatedHelperParameterList"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Parser_Context_Not_Set"
-msgstr ""
+msgstr "Parser_Context_Not_Set"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserContext_CannotCompleteTree_NoRootBlock"
-msgstr ""
+msgstr "ParserContext_CannotCompleteTree_NoRootBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserContext_CannotCompleteTree_OutstandingBlocks"
-msgstr ""
+msgstr "ParserContext_CannotCompleteTree_OutstandingBlocks"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserContext_NoCurrentBlock"
-msgstr ""
+msgstr "ParserContext_NoCurrentBlock"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserContext_ParseComplete"
-msgstr ""
+msgstr "ParserContext_ParseComplete"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserEror_SessionDirectiveMissingValue"
-msgstr ""
+msgstr "ParserEror_SessionDirectiveMissingValue"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "ParserIsNotAMarkupParser"
-msgstr ""
+msgstr "ParserIsNotAMarkupParser"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "SectionExample_CS"
-msgstr ""
+msgstr "SectionExample_CS"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "SectionExample_VB"
-msgstr ""
+msgstr "SectionExample_VB"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Structure_Member_CannotBeNull"
-msgstr ""
+msgstr "Structure_Member_CannotBeNull"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Symbol_Unknown"
-msgstr ""
+msgstr "Symbol_Unknown"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Tokenizer_CannotResumeSymbolUnlessIsPrevious"
-msgstr ""
+msgstr "Tokenizer_CannotResumeSymbolUnlessIsPrevious"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "TokenizerView_CannotPutBack"
-msgstr ""
+msgstr "TokenizerView_CannotPutBack"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_BackgroundThreadShutdown"
-msgstr ""
+msgstr "Trace_BackgroundThreadShutdown"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_BackgroundThreadStart"
-msgstr ""
+msgstr "Trace_BackgroundThreadStart"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_ChangesArrived"
-msgstr ""
+msgstr "Trace_ChangesArrived"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_ChangesDiscarded"
-msgstr ""
+msgstr "Trace_ChangesDiscarded"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_CollectedDiscardedChanges"
-msgstr ""
+msgstr "Trace_CollectedDiscardedChanges"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_Disabled"
-msgstr ""
+msgstr "Trace_Disabled"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_EditorProcessedChange"
-msgstr ""
+msgstr "Trace_EditorProcessedChange"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_EditorReceivedChange"
-msgstr ""
+msgstr "Trace_EditorReceivedChange"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_Enabled"
-msgstr ""
+msgstr "Trace_Enabled"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_Format"
-msgstr ""
+msgstr "Trace_Format"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_NoChangesArrived"
-msgstr ""
+msgstr "Trace_NoChangesArrived"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_ParseComplete"
-msgstr ""
+msgstr "Trace_ParseComplete"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_QueuingParse"
-msgstr ""
+msgstr "Trace_QueuingParse"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_Startup"
-msgstr ""
+msgstr "Trace_Startup"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "Trace_TreesCompared"
-msgstr ""
+msgstr "Trace_TreesCompared"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_CharacterLiteral"
-msgstr ""
+msgstr "VBSymbol_CharacterLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_Comment"
-msgstr ""
+msgstr "VBSymbol_Comment"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_DateLiteral"
-msgstr ""
+msgstr "VBSymbol_DateLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_FloatingPointLiteral"
-msgstr ""
+msgstr "VBSymbol_FloatingPointLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_Identifier"
-msgstr ""
+msgstr "VBSymbol_Identifier"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_IntegerLiteral"
-msgstr ""
+msgstr "VBSymbol_IntegerLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_Keyword"
-msgstr ""
+msgstr "VBSymbol_Keyword"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_NewLine"
-msgstr ""
+msgstr "VBSymbol_NewLine"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_RazorComment"
-msgstr ""
+msgstr "VBSymbol_RazorComment"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_StringLiteral"
-msgstr ""
+msgstr "VBSymbol_StringLiteral"
#: ../src/addins/AspNet/Razor/EditorParserFixed/RazorResources.Designer.cs:1
msgid "VBSymbol_WhiteSpace"
-msgstr ""
+msgstr "VBSymbol_WhiteSpace"
#: ../src/addins/AspNet/WebForms/MasterContentFileDescriptionTemplate.cs:2
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:119
@@ -18227,7 +18125,7 @@ msgstr "Потрібен клієнтський сертифікат"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:4
msgid "Ask"
-msgstr ""
+msgstr "Запитати"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:4
msgid "Store (insecure)"
@@ -18242,9 +18140,8 @@ msgid "(blank = localhost)"
msgstr ""
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:7
-#, fuzzy
msgid "(0 = random)"
-msgstr "0 = випадковий порт"
+msgstr "(0 = випадково)"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:7
msgid "Verbose console output"
@@ -18259,9 +18156,8 @@ msgid "SSL protocol:"
msgstr "Протокол SSL:"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:12
-#, fuzzy
msgid "SSL Key"
-msgstr "<b>Ключ SSL</b>"
+msgstr "Ключ SSL"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:13
msgid "Key type:"
@@ -18273,9 +18169,8 @@ msgid "Key file:"
msgstr "Файли jay"
#: ../src/addins/AspNet/Execution/XspOptionsPanelWidget.cs:13
-#, fuzzy
msgid "Certificate file:"
-msgstr "Розташування сертифіката:"
+msgstr "Файл сертифіката:"
#: ../src/addins/AspNet/Html/HtmlPathCompletion.cs:3
msgid "Choose file..."
@@ -18287,7 +18182,7 @@ msgstr "Виберіть файл з проекту."
#: ../src/addins/AspNet/WebForms/WebFormsEditorExtension.cs:18
msgid "Updating ASP.NET Designer File..."
-msgstr ""
+msgstr "Оновлення файлу ASP.NET Designer..."
#: ../src/addins/AspNet/WebForms/WebFormsEditorExtension.cs:30
msgid "Required for ASP.NET controls.\n"
@@ -18303,7 +18198,7 @@ msgstr ""
#: ../src/addins/AspNet/WebForms/WebFormsEditorExtension.cs:30
msgid "Unique identifier.\n"
-msgstr ""
+msgstr "Унікальний ідентифікатор.\n"
#: ../src/addins/AspNet/WebForms/WebFormsEditorExtension.cs:30
msgid ""
@@ -18362,24 +18257,22 @@ msgid "_Template:"
msgstr "_Шаблон:"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:31
-#, fuzzy
msgid "_Name"
msgstr "_Назва:"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:31
msgid "_View Engine:"
-msgstr ""
+msgstr "Рушій _представлень:"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:36
msgid "_Partial view"
-msgstr ""
+msgstr "_Часткове представлення"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:36
msgid "_Strongly typed"
msgstr "_Жорстко типізований"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:36
-#, fuzzy
msgid "Has _master page or layout"
msgstr "Має _головну сторінку або конфігурацію:"
@@ -18392,9 +18285,8 @@ msgid "_File:"
msgstr "_Файл:"
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:41
-#, fuzzy
msgid "P_rimary placeholder:"
-msgstr "Основний заповнювач: "
+msgstr "_Основний заповнювач: "
#: ../src/addins/AspNet/Commands/AddViewDialog.cs:116
msgid "Select a Layout file..."
@@ -18443,9 +18335,8 @@ msgid ""
msgstr ""
#: ../src/addins/AspNet/gtk-gui/MonoDevelop.AspNet.Projects.GtkAspNetProjectTemplateWizardPageWidget.cs:283
-#, fuzzy
msgid "Testing:"
-msgstr "Модульне тестування"
+msgstr "Тестування:"
#: ../src/addins/AspNet/gtk-gui/MonoDevelop.AspNet.Projects.GtkAspNetProjectTemplateWizardPageWidget.cs:316
msgid "Web API"
@@ -18458,9 +18349,8 @@ msgid ""
msgstr ""
#: ../src/addins/AspNet/gtk-gui/MonoDevelop.AspNet.Projects.GtkAspNetProjectTemplateWizardPageWidget.cs:371
-#, fuzzy
msgid "Web Forms"
-msgstr "Веб-форма"
+msgstr "Веб-форми"
#: ../src/addins/AspNet/gtk-gui/MonoDevelop.AspNet.Projects.GtkAspNetProjectTemplateWizardPageWidget.cs:397
msgid ""
@@ -18496,11 +18386,11 @@ msgstr ""
#: ../src/addins/AspNet/Razor/Razor-templates.xml:27
#: ../src/addins/AspNet/Razor/Razor-templates.xml:28
msgid "Razor"
-msgstr ""
+msgstr "Razor"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:1
msgid "Template for inherits directive"
-msgstr ""
+msgstr "Шаблон директиви inherits"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:1
msgid "Base class"
@@ -18508,7 +18398,7 @@ msgstr "Базовий клас"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:2
msgid "Template for model directive"
-msgstr ""
+msgstr "Шаблон директиви model"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:2
msgid "Strongly typed model"
@@ -18524,7 +18414,7 @@ msgstr "Використовуваний ресурс"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:4
msgid "Template for section directive"
-msgstr ""
+msgstr "Шаблон директиви section"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:4
msgid "Section's name"
@@ -18532,19 +18422,19 @@ msgstr "Назва розділу"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:5
msgid "Template for helper directive"
-msgstr ""
+msgstr "Шаблон директиви помічника"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:5
msgid "Helper's name"
-msgstr ""
+msgstr "Назва помічника"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:5
msgid "Helper's arguments"
-msgstr ""
+msgstr "Аргументи помічника"
#: ../src/addins/AspNet/Razor/Razor-templates.xml:6
msgid "Template for functions directive"
-msgstr ""
+msgstr "Шаблон директиви функції"
#: ../src/addins/AspNet/Templates/Mvc/Controller.xft.xml:1
msgid "ASP.NET MVC Controller"
@@ -18576,15 +18466,15 @@ msgstr "Створити сторінку макету MVC Razor."
#: ../src/addins/AspNet/Templates/Mvc/PartialViewPageRazor.xft.xml:1
msgid "ASP.NET MVC Partial View Page (Razor)"
-msgstr ""
+msgstr "Сторінка часткового представлення ASP.NET MVC Partial (Razor)"
#: ../src/addins/AspNet/Templates/Mvc/PartialViewPageRazor.xft.xml:1
msgid "Creates an MVC Razor Partial View page."
-msgstr ""
+msgstr "Створити сторінку часткового представлення MVC Razor."
#: ../src/addins/AspNet/Templates/Mvc/UserControl.xft.xml:1
msgid "ASP.NET MVC View User Control"
-msgstr ""
+msgstr "Елемент керування представлення ASP.NET MVC"
#: ../src/addins/AspNet/Templates/Mvc/UserControl.xft.xml:1
msgid "Creates an ASP.NET MVC User Control."
@@ -18592,11 +18482,11 @@ msgstr "Створити користувацький компонент ASP.NET
#: ../src/addins/AspNet/Templates/Mvc/ViewContentPage.xft.xml:1
msgid "ASP.NET MVC View Content"
-msgstr "Перегляд вмісту ASP.NET MVC"
+msgstr "Вмісту представлення ASP.NET MVC"
#: ../src/addins/AspNet/Templates/Mvc/ViewContentPage.xft.xml:1
msgid "Creates an ASP.NET MVC View Content page."
-msgstr "Створити сторінку перегляду вмісту ASP.NET MVC."
+msgstr "Створити сторінку вмісту представлення ASP.NET MVC."
#: ../src/addins/AspNet/Templates/Mvc/ViewMasterPage.xft.xml:1
msgid "ASP.NET MVC Master Page"
@@ -18608,38 +18498,35 @@ msgstr "Створити головну сторінку ASP.NET MVC."
#: ../src/addins/AspNet/Templates/Mvc/ViewPage.xft.xml:1
msgid "ASP.NET MVC View Page"
-msgstr "Сторінка перегляду ASP.NET MVC"
+msgstr "Сторінка представлення ASP.NET MVC"
#: ../src/addins/AspNet/Templates/Mvc/ViewPage.xft.xml:1
msgid "Creates an MVC View page."
-msgstr "Створити сторінку перегляду MVC."
+msgstr "Створити сторінку представлення MVC."
#: ../src/addins/AspNet/Templates/Mvc/ViewPageRazor.xft.xml:1
msgid "ASP.NET MVC View Page (Razor)"
-msgstr "Сторінка перегляду ASP.NET MVC (Razor)"
+msgstr "Сторінка представлення ASP.NET MVC (Razor)"
#: ../src/addins/AspNet/Templates/Mvc/ViewPageRazor.xft.xml:1
msgid "Creates an MVC Razor View page."
-msgstr "Створити сторінку перегляду MVC Razor."
+msgstr "Створити сторінку представлення MVC Razor."
#: ../src/addins/AspNet/Templates/Mvc/WebConfigViews.xft.xml:4
-#, fuzzy
msgid "ASP.NET MVC Views Configuration"
-msgstr "Перегляд вмісту ASP.NET MVC"
+msgstr "Конфігурація представлень ASP.NET MVC"
#: ../src/addins/AspNet/Templates/Mvc/WebConfigViews.xft.xml:10
-#, fuzzy
msgid "Creates an ASP.NET MVC Web.config file for the Views directory."
-msgstr "Створити файл ASP.NET web.config для підтеки."
+msgstr "Створити файл ASP.NET Web.config для теки представлень."
#: ../src/addins/AspNet/Templates/WebConfig-Application.xft.xml:1
msgid "Web Application Configuration"
msgstr "Конфігурація веб-застосунку"
#: ../src/addins/AspNet/Templates/WebConfig-Application.xft.xml:1
-#, fuzzy
msgid "Creates an ASP.NET Web.config file for an application."
-msgstr "Створити для застосунку файл ASP.NET web.config."
+msgstr "Створити для застосунку файл ASP.NET Web.config."
#: ../src/addins/AspNet/Templates/WebConfig-SubDir.xft.xml:1
msgid "Subdirectory Web Configuration"
@@ -18798,24 +18685,20 @@ msgid "A Razor template that will be preprocessed into a C# class."
msgstr "Шаблон Razor, що буде перетворений препроцесором на клас C#."
#: ../src/addins/AspNet/Templates/Projects/MvcProject.xpt.xml:4
-#, fuzzy
msgid "ASP.NET MVC Project"
-msgstr "Проект ASP.NET MVC 2"
+msgstr "Проект ASP.NET MVC"
#: ../src/addins/AspNet/Templates/Projects/MvcProject.xpt.xml:9
-#, fuzzy
msgid "Creates an ASP.NET MVC Web Project with Razor Views."
-msgstr "Створити веб-проект ASP.NET MVC 2"
+msgstr "Створити веб-проект ASP.NET MVC з представленнями Razor."
#: ../src/addins/AspNet/Templates/Projects/EmptyProject.xpt.xml:0
-#, fuzzy
msgid "Empty ASP.NET Project"
-msgstr "Порожній проект ASP.NET MVC 2"
+msgstr "Порожній проект ASP.NET"
#: ../src/addins/AspNet/Templates/Projects/EmptyProject.xpt.xml:0
-#, fuzzy
msgid "Creates an empty ASP.NET Web Project."
-msgstr "Створити порожній веб-проект ASP.NET MVC 2"
+msgstr "Створити порожній веб-проект ASP.NET"
#: ../src/addins/AspNet/Templates/Projects/WebFormsProject.xpt.xml:1
#, fuzzy
@@ -18870,7 +18753,7 @@ msgstr "Шаблон T4"
#: ../src/addins/TextTemplating/MonoDevelop.TextTemplating/Templates/T4TemplateCSharp.xft.xml:1
msgid "A T4 template for generating code or text files."
-msgstr ""
+msgstr "Шаблон T4 для створення коду або текстових файлів"
#: ../src/addins/TextTemplating/MonoDevelop.TextTemplating/Templates/T4PreprocessedTemplateCSharp.xft.xml:1
msgid "Preprocessed T4 Template"
@@ -18894,11 +18777,14 @@ msgid ""
"Could not get assembly name for user assembly '{0}'. Debugger will now debug "
"all code, not just user code."
msgstr ""
+"Неможливо отримати назву збірки для користувацької збірки '{0}'. Зневаджувач "
+"оброблятиме весь код, а не лише код користувача."
#: ../src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft.AspNet/AspNetSoftDebuggerEngine.cs:4
msgid ""
"The \"{0}\" web server cannot be started. Please ensure that it is installed."
msgstr ""
+"Неможливо запустити веб-сервер \"{0}\". Перевірте, чи він встановлений."
#: ../src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs:2
msgid "Hex Editor"
@@ -18914,29 +18800,24 @@ msgid "Address"
msgstr "Адреса"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:59
-#, fuzzy
msgid "Show Module Name"
-msgstr "Назва додатку:"
+msgstr "Показати назву модуля"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:59
-#, fuzzy
msgid "Show Parameter Type"
-msgstr "Показати список параметрів"
+msgstr "Показати тип параметра"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:59
-#, fuzzy
msgid "Show Parameter Name"
-msgstr "Показати список параметрів"
+msgstr "Показати назву параметра"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:59
-#, fuzzy
msgid "Show Parameter Value"
-msgstr "Показати список параметрів"
+msgstr "Показати значення параметра"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs:59
-#, fuzzy
msgid "Show Line Number"
-msgstr "Показувати _номери рядків"
+msgstr "Показати номер рядка"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:28
msgid "Click here to add a new watch"
@@ -18947,23 +18828,20 @@ msgid "The name '{0}' does not exist in the current context."
msgstr "Назва '{0}' відсутня у поточному контексті."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:87
-#, fuzzy
msgid "Show Value"
-msgstr "Значення"
+msgstr "Показати значення"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:87
msgid "Evaluating..."
msgstr "Обчислення..."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:88
-#, fuzzy
msgid "Show More"
-msgstr "Показати помилки"
+msgstr "Показати більше"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs:88
-#, fuzzy
msgid "Show Values"
-msgstr "Показати файли:"
+msgstr "Показати значення"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs:2
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs:13
@@ -19015,14 +18893,12 @@ msgid "Continue the execution of the application"
msgstr ""
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs:18
-#, fuzzy
msgid "Please select the application to debug"
-msgstr "Виберіть політику"
+msgstr "Виберіть застосунок для зневадження"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs:19
-#, fuzzy
msgid "The file '{0}' does not exist"
-msgstr "Не вдалось видалити файл {0}"
+msgstr "Файл '{0}' не існує"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs:20
msgid "The file '{0}' can't be debugged"
@@ -19030,7 +18906,7 @@ msgstr "Неможливе зневадження файлу '{0}'"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs:21
msgid "Do you want to detach from the process being debugged?"
-msgstr ""
+msgstr "Бажаєте від'єднатися від процесу, який зневаджується?"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs:21
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
@@ -19068,7 +18944,7 @@ msgstr "Сеанс зневадження не розпочато."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs:5
msgid "The expression can't be evaluated while the application is running."
-msgstr ""
+msgstr "Неможливо обчислити значення виразу, доки програма запущена."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs:10
msgid "Expression not supported."
@@ -19083,9 +18959,8 @@ msgid "< More... (The first {0} items were displayed.) >"
msgstr ""
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs:31
-#, fuzzy
msgid "Debugging stopped"
-msgstr "Розпочати _зневадження елемента"
+msgstr "Зневадження зупинено"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs:34
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs:42
@@ -19137,14 +19012,12 @@ msgid "ms"
msgstr "мс"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:7
-#, fuzzy
msgid "Advanced options"
msgstr "Розширені параметри"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:7
-#, fuzzy
msgid "Enable diagnostic logging"
-msgstr "Підсвічувати семантику"
+msgstr "Увімкнути журналювання діагностики"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs:42
msgid "Exception Caught"
@@ -19184,107 +19057,93 @@ msgid "C String"
msgstr "Рядок C"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:4
-#, fuzzy
msgid "Pause the program"
-msgstr "Вставити з буфера"
+msgstr "Призупинити програму"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:4
msgid "Print a message and continue"
-msgstr ""
+msgstr "Вивести повідомлення і продовжити"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:5
-#, fuzzy
msgid "When a function is entered"
-msgstr "Коли умова виконується:"
+msgstr "При вході у функцію"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:5
-#, fuzzy
msgid "When a location is reached"
-msgstr "Коли умова виконується:"
+msgstr "При досягненні розташування"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:5
-#, fuzzy
msgid "When an exception is thrown"
-msgstr "Коли умова виконується:"
+msgstr "При виникненні винятку"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:6
msgid "e.g. System.Object.ToString"
-msgstr ""
+msgstr "наприклад, System.Object.ToString"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:6
msgid "e.g. Program.cs:15:5"
-msgstr ""
+msgstr "наприклад, Program.cs:15:5"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:6
msgid "e.g. System.InvalidOperationException"
-msgstr ""
+msgstr "наприклад, System.InvalidOperationException"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:6
msgid "e.g. colorName == \"Red\""
-msgstr ""
+msgstr "наприклад, colorName == \"Red\""
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:6
msgid "e.g. Value of 'name' is {name}"
-msgstr ""
+msgstr "наприклад, значення 'name' дорівнює {name}"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:20
-#, fuzzy
msgid "Include subclasses"
-msgstr "Включити _пропуски"
+msgstr "Включити підкласи"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:21
msgid "Place simple C# expressions within {} to interpolate them."
-msgstr ""
+msgstr "Помістіть у {} простий вираз C# для обчислення."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:21
msgid "A C# boolean expression. Scope is local to the breakpoint."
-msgstr ""
+msgstr "Логічний вираз C#. Видимість - локальна до контр. точки."
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:31
-#, fuzzy
msgid "Reset condition"
-msgstr "Замінити умовою"
+msgstr "Скинути умову"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is less than"
-msgstr "Зупинитись, якщо лічильник менший ніж"
+msgstr "Якщо лічильник менший ніж"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is less than or equal to"
-msgstr "Зупинитись, якщо лічильник менший або дорівнює"
+msgstr "Якщо лічильник менший або дорівнює"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is equal to"
-msgstr "Зупинитись, якщо лічильник дорівнює"
+msgstr "Якщо лічильник дорівнює"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is greater than"
-msgstr "Зупинитись, якщо лічильник більший ніж"
+msgstr "Якщо лічильник більший ніж"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is greater than or equal to"
-msgstr "Зупинитись, якщо лічильник більший або дорівнює"
+msgstr "Якщо лічильник більший або дорівнює"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:28
-#, fuzzy
msgid "When hit count is a multiple of"
-msgstr "Зупинитись, якщо лічильник кратний"
+msgstr "Якщо лічильник кратний"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:31
-#, fuzzy
msgid "And the following condition is true"
-msgstr "Зупинитись, якщо умова виконується"
+msgstr "І виконується така умова"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:31
-#, fuzzy
msgid "And the following expression changes"
-msgstr "Зупинитись, якщо вираз змінився"
+msgstr "І змінилося значення такого виразу"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:60
#, fuzzy
@@ -19293,9 +19152,8 @@ msgstr "Розташування ключа:"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:60
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:63
-#, fuzzy
msgid "File does not exist"
-msgstr "Тека для перевірки не існує"
+msgstr "Файл не існує"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:60
#, fuzzy
@@ -19312,7 +19170,7 @@ msgstr ""
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:87
msgid "Trace expression not specified"
-msgstr ""
+msgstr "Не задано вираз для трасування"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:89
msgid "Function name not specified"
@@ -19323,33 +19181,28 @@ msgid "Invalid function syntax"
msgstr "Неправильний синтаксис функції"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:90
-#, fuzzy
msgid "Exception not identified"
-msgstr "Не вказана назва функції"
+msgstr "Виняток не розпізнано"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:102
-#, fuzzy
msgid "Breakpoint Action"
-msgstr "Контрольні точки"
+msgstr "Дія контрольної точки"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:109
msgid "When to Take Action"
-msgstr ""
+msgstr "Коли виконати дію"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:120
-#, fuzzy
msgid "Advanced Conditions"
-msgstr "Розширені параметри"
+msgstr "Розширені умови"
#: ../src/addins/MonoDevelop.Debugger/gtk-gui/MonoDevelop.Debugger.DebugApplicationDialog.cs:2
-#, fuzzy
msgid "Debug Application"
-msgstr "Зневадження застосунку..."
+msgstr "Зневадження застосунку"
#: ../src/addins/MonoDevelop.Debugger/gtk-gui/MonoDevelop.Debugger.DebugApplicationDialog.cs:2
-#, fuzzy
msgid "Working Directory"
-msgstr "Робоча тека :"
+msgstr "Робоча тека"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:5
msgid "Debug Windows"
@@ -19432,14 +19285,12 @@ msgid "Step Out"
msgstr "Крок за межі"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
-#, fuzzy
msgid "New Breakpoint"
-msgstr "Нова контрольна точка..."
+msgstr "Нова контрольна точка"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
-#, fuzzy
msgid "New Function Breakpoint"
-msgstr "Нова контрольна точка функції..."
+msgstr "Нова контрольна точка функції"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
#, fuzzy
@@ -19447,9 +19298,8 @@ msgid "New Exception Catchpoint"
msgstr "Трапився виняток"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
-#, fuzzy
msgid "View Breakpoints"
-msgstr "Контрольні точки"
+msgstr "Показати контрольні точки"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
msgid "Remove Breakpoint"
@@ -19501,7 +19351,7 @@ msgstr "Зупинити розрахунок"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
msgid "Run To Cursor"
-msgstr ""
+msgstr "Виконати до курсора"
#: ../src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml:11
#, fuzzy
@@ -19519,9 +19369,8 @@ msgstr "Зневаджувач"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/ReinstallProjectPackagesActionTests.cs:168
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ReinstallProjectPackagesAction.cs:101
-#, fuzzy
msgid "Retargeting packages...{0}"
-msgstr "Створити пакет..."
+msgstr "Перенацілення пакунків...{0}"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/AvailablePackagesViewModel.cs:211
#, fuzzy
@@ -19535,21 +19384,19 @@ msgstr "Не вдалось перейменувати проект."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProcessPackageAction.cs:142
msgid "WARNING: {0} Package contains PowerShell scripts which will not be run."
-msgstr ""
+msgstr "УВАГА: Пакунок {0} містить скрипти PowerShell, які не будуть запущені."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProcessPackageAction.cs:149
msgid "Licenses not accepted."
-msgstr ""
+msgstr "Ліцензії не прийнято."
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:26
-#, fuzzy
msgid "Manage Packages"
-msgstr "Пакети"
+msgstr "Керування пакунками"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:45
-#, fuzzy
msgid "Available"
-msgstr "Доступний для"
+msgstr "Доступно"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:56
#: ../external/mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinManagerDialog.cs:3
@@ -19558,16 +19405,14 @@ msgid "Installed"
msgstr "Встановлено"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:67
-#, fuzzy
msgid "Updated"
-msgstr "Оновити"
+msgstr "Оновлено"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:78
msgid "Recent"
msgstr "Останні"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.ManagePackagesDialog.cs:102
-#, fuzzy
msgid "Messages"
msgstr "Повідомлення"
@@ -19583,37 +19428,35 @@ msgstr "Оновити всі"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:218
msgid "<span weight='bold'>Created by:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Створено:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:246
msgid "<span weight='bold'>Id:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Id:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:279
msgid "<span weight='bold'>Version:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Версія:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:307
msgid "<span weight='bold'>Last Updated:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Останнє оновлення:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:335
msgid "<span weight='bold'>Downloads:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Звантажень:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:399
msgid "<span weight='bold'>Dependencies:</span>"
-msgstr ""
+msgstr "<span weight='bold'>Залежності:</span>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackagesWidget.cs:484
-#, fuzzy
msgid "Manage"
-msgstr "Керування додатками"
+msgstr "Керування"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs:22
-#, fuzzy
msgid "License Agreements"
-msgstr "Аргументи подій"
+msgstr "Ліцензійна угода"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs:36
#, fuzzy
@@ -19621,9 +19464,8 @@ msgid "The following package requires a click-to-accept license:"
msgstr "Такі пакунки потрібно вилучити:"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs:54
-#, fuzzy
msgid "The following packages require a click-to-accept license:"
-msgstr "Такі пакунки потрібно вилучити:"
+msgstr "Дані пакунки потребують згоди з ліцензією:"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs:89
msgid ""
@@ -19631,16 +19473,17 @@ msgid ""
"above.\n"
"If you do not agree to the license terms click \"Cancel\"."
msgstr ""
+"Натиснувши \"Гаразд\" ви погодитесь з ліцензійними вимогами для "
+"перелічених нижче пакунків.\n"
+"Якщо ви не згодні з ліцензійними вимогами, клацніть \"Скасувати\"."
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.SelectProjectsDialog.cs:18
-#, fuzzy
msgid "Select Projects"
-msgstr "Видалити проект"
+msgstr "Виберіть проекти"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.SelectProjectsDialog.cs:31
-#, fuzzy
msgid "Install the package into the following projects:"
-msgstr "Лише в таких віконних середовищах:"
+msgstr "Встановити пакунок у такі проекти:"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs:83
msgid "Unable to encrypt Package Source passwords."
@@ -19651,136 +19494,115 @@ msgid "Unable to save package source changes.{0}{0}{1}"
msgstr ""
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs:154
-#, fuzzy
msgid "Unable to read or write to \"{0}\"."
-msgstr "Не вдалось побудувати ResourceId для {0}."
+msgstr "Не вдалось прочитати або записати \"{0}\"."
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackageManagementOptionsWidget.cs:43
-#, fuzzy
msgid "<b>Package Restore</b>"
-msgstr "<b>Повернення</b>"
+msgstr "<b>Відновлення пакунків</b>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackageManagementOptionsWidget.cs:65
-#, fuzzy
msgid "_Automatically restore packages when opening a solution."
-msgstr "Після відкриття рішення закрити сторінку вітання."
+msgstr "При відкриванні рішення _автоматично відновлювати пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackageManagementOptionsWidget.cs:81
-#, fuzzy
msgid "<b>Package Updates</b>"
-msgstr "<b>Мовні параметри</b>"
+msgstr "<b>Оновлення пакунків</b>"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PackageManagementOptionsWidget.cs:103
-#, fuzzy
msgid "Check for package _updates when opening a solution."
-msgstr "Після відкриття рішення закрити сторінку вітання."
+msgstr "Після відкриття рішення перевірити _оновлення пакунків."
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PagedResultsWidget.cs:45
msgid "1"
-msgstr ""
+msgstr "1"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PagedResultsWidget.cs:57
msgid "2"
-msgstr ""
+msgstr "2"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PagedResultsWidget.cs:69
msgid "3"
-msgstr ""
+msgstr "3"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PagedResultsWidget.cs:81
msgid "4"
-msgstr ""
+msgstr "4"
#: ../src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.PagedResultsWidget.cs:93
msgid "5"
-msgstr ""
+msgstr "5"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:60
-#, fuzzy
msgid "Configure Sources..."
-msgstr "Конфігурувати"
+msgstr "Конфігурувати джерела..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:174
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:135
-#, fuzzy
msgid "Loading package list..."
-msgstr "Завантаження даних..."
+msgstr "Завантаження списку пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:176
-#, fuzzy
msgid "Searching packages..."
-msgstr "Тип пошуку..."
+msgstr "Пошук пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:270
-#, fuzzy
msgid "All Sources"
-msgstr "{0} сирців"
+msgstr "Всі джерела"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:659
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:67
-#, fuzzy
msgid "Add Packages"
-msgstr "Додати пакет..."
+msgstr "Додати пакунки"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:662
-#, fuzzy
msgid "Update Package"
-msgstr "Створити пакет"
+msgstr "Оновити пакунок"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs:664
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:332
-#, fuzzy
msgid "Add Package"
-msgstr "Додати пакет..."
+msgstr "Додати пакунок"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:150
-#, fuzzy
msgid "No matching packages found."
-msgstr "Новин не знайдено."
+msgstr "Підхожих пакунків не знайдено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:210
-#, fuzzy
msgid "<b>Id</b>"
-msgstr "<b>Завантажити</b>"
+msgstr "<b>Id</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:229
-#, fuzzy
msgid "<b>Author</b>"
-msgstr "<b>Дія</b>"
+msgstr "<b>Автор</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:244
-#, fuzzy
msgid "<b>Published</b>"
-msgstr "<b>Різне</b>"
+msgstr "<b>Опубліковано</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:257
-#, fuzzy
msgid "<b>Downloads</b>"
-msgstr "<b>Вниз</b>"
+msgstr "<b>Звантаження</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:270
-#, fuzzy
msgid "<b>License</b>"
-msgstr "<b>Різне</b>"
+msgstr "<b>Ліцензія</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:275
-#, fuzzy
msgid "View License"
-msgstr "Переглянути список"
+msgstr "Показати ліцензію"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:284
-#, fuzzy
msgid "<b>Project Page</b>"
-msgstr "<b>Опції проекту</b>"
+msgstr "<b>Сторінка проекту</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:289
msgid "Visit Page"
-msgstr ""
+msgstr "Відвідати сторінку"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:298
-#, fuzzy
msgid "<b>Dependencies</b>"
-msgstr "<b>Вигляд</b>"
+msgstr "<b>Залежності</b>"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.UI.cs:326
#, fuzzy
@@ -19797,381 +19619,318 @@ msgid ""
msgstr ""
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressMonitorFactory.cs:58
-#, fuzzy
msgid "Package Console"
-msgstr "Пакети"
+msgstr "Консоль пакунка"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs:91
-#, fuzzy
msgid "updates"
-msgstr "Оновлення"
+msgstr "оновлення"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs:93
-#, fuzzy
msgid "update"
-msgstr "Оновити"
+msgstr "оновити"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNode.cs:105
-#, fuzzy
msgid "available"
-msgstr "Недоступно"
+msgstr "доступно"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNode.cs:110
-#, fuzzy
msgid "installing"
-msgstr "Видалити"
+msgstr "встановлення"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNode.cs:120
-#, fuzzy
msgid "Version {0}"
-msgstr "Версія"
+msgstr "Версія {0}"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNode.cs:139
-#, fuzzy
msgid "Package is not restored"
-msgstr "Не вказана назва пакета."
+msgstr "Пакунок не відновлено"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNode.cs:141
-#, fuzzy
msgid "Package needs retargeting"
-msgstr "Настройки пакета"
+msgstr "Пакунок потрібно перенацілити"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Commands/PackageReferenceNodeCommandHandler.cs:66
msgid ""
"Unable to find package {0} {1} to remove it from the project. Please restore "
"the package first."
msgstr ""
+"Не вдалось знайти пакунок {0} {1}, щоб вилучити його з проекту. Спочатку "
+"слід відновити пакунок."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:58
msgid "Development Dependency"
-msgstr ""
+msgstr "Залежність розробки"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:65
-#, fuzzy
msgid "Target Framework"
-msgstr "Цільовий _фреймворк:"
+msgstr "Цільовий фреймворк"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:72
-#, fuzzy
msgid "Version Constraint"
-msgstr "Керування версіями"
+msgstr "Обмеження версії"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:45
-#, fuzzy
msgid "Package Id."
-msgstr "Пакет"
+msgstr "Ідентифікатор пакунка."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:52
-#, fuzzy
msgid "Package version."
-msgstr "Настройки пакета"
+msgstr "Версія пакунка."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:59
msgid "Package is a development dependency."
-msgstr ""
+msgstr "Пакунок залежний від розробки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:66
-#, fuzzy
msgid "Target framework for the Package."
-msgstr "Цільовий _фреймворк:"
+msgstr "Цільовий фреймворк для пакунка."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs:73
-#, fuzzy
msgid "Version constraint for the Package."
-msgstr "Версія збірки."
+msgstr "Обмеження версії для пакунка."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:38
-#, fuzzy
msgid "Adding {0}..."
-msgstr "Додавання..."
+msgstr "Додавання {0}..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:39
-#, fuzzy
msgid "{0} successfully added."
-msgstr "Мову '{0}' успішно додано."
+msgstr "{0} успішно додано."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:40
-#, fuzzy
msgid "Could not add {0}."
-msgstr "Тип '{0}' не знайдено."
+msgstr "Не вдалось додати {0}."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:41
-#, fuzzy
msgid "{0} added with warnings."
-msgstr "{0} попередження"
+msgstr "{0} додано з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:48
-#, fuzzy
msgid "Adding packages..."
-msgstr "Пакети додатків"
+msgstr "Додавання пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:49
-#, fuzzy
msgid "Packages successfully added."
-msgstr "Мову '{0}' успішно додано."
+msgstr "Пакунки успішно додано."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:50
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:60
-#, fuzzy
msgid "Could not add packages."
-msgstr "Тип '{0}' не знайдено."
+msgstr "Не вдалось додати пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:51
-#, fuzzy
msgid "Packages added with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "Пакунки додано з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:58
-#, fuzzy
msgid "Adding {0} packages..."
-msgstr "Пакети додатків"
+msgstr "Додавання {0} пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:59
-#, fuzzy
msgid "{0} packages successfully added."
-msgstr "Мову '{0}' успішно додано."
+msgstr "{0} пакунків успішно додано."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:61
-#, fuzzy
msgid "{0} packages added with warnings."
-msgstr "{0} помилок і {1} попереджень"
+msgstr "{0} пакунків додано з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:68
-#, fuzzy
msgid "Updating packages in solution..."
-msgstr "Оновлення рішення"
+msgstr "Оновлення пакунків у рішенні..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:69
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:109
-#, fuzzy
msgid "Packages successfully updated."
-msgstr "Мову '{0}' успішно додано."
+msgstr "Пакунки успішно оновлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:70
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:90
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:110
-#, fuzzy
msgid "Could not update packages."
-msgstr "Не вдалось оновити файл '{0}'"
+msgstr "Не вдалось оновити пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:71
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:111
-#, fuzzy
msgid "Packages updated with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "Пакунки оновлено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:80
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:100
-#, fuzzy
msgid "Packages are up to date."
-msgstr "Не вказана назва пакета."
+msgstr "Пакунки актуальні."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:81
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:101
msgid "No updates found but warnings were reported."
-msgstr ""
+msgstr "Оновлень не знайдено, але є попередження."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:88
-#, fuzzy
msgid "Updating {0} packages in project..."
-msgstr "Проект оновлюється"
+msgstr "Оновлення {0} пакунків у проекті..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:89
-#, fuzzy
msgid "{0} packages successfully updated."
-msgstr "{0} були створені успішно."
+msgstr "{0} пакунків успішно оновлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:91
-#, fuzzy
msgid "{0} packages updated with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "{0} пакунків оновлено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:108
-#, fuzzy
msgid "Updating packages in project..."
-msgstr "Проект оновлюється"
+msgstr "Оновлення пакунків у проекті..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:118
-#, fuzzy
msgid "Updating {0}..."
-msgstr "Оновлення {0}"
+msgstr "Оновлення {0}..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:119
-#, fuzzy
msgid "{0} successfully updated."
-msgstr "{0} були створені успішно."
+msgstr "{0} успішно оновлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:120
-#, fuzzy
msgid "Could not update {0}."
-msgstr "Не вдалось оновити файл '{0}'"
+msgstr "Не вдалось оновити {0}."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:121
-#, fuzzy
msgid "{0} updated with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "{0} оновлено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:130
-#, fuzzy
msgid "{0} is up to date."
-msgstr "Віддалену гілку оновлено."
+msgstr "{0} актуальний."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:131
msgid "No update found but warnings were reported."
-msgstr ""
+msgstr "Оновлення не знайдено, але є попередження."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:138
-#, fuzzy
msgid "Removing {0}..."
-msgstr "Вилучення..."
+msgstr "Вилучення {0}..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:139
-#, fuzzy
msgid "{0} successfully removed."
-msgstr "Ревізію {0} успішно повернуто."
+msgstr "{0} успішно видалено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:140
-#, fuzzy
msgid "Could not remove {0}."
-msgstr "Не вдалось зберегти елемент: {0}"
+msgstr "Не вдалось видалити {0}."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:141
-#, fuzzy
msgid "{0} removed with warnings."
-msgstr "{0} помилок і {1} попереджень"
+msgstr "{0} видалено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:148
-#, fuzzy
msgid "Restoring packages for solution..."
-msgstr "До проекту або рішення."
+msgstr "Відновлення пакунків для рішення..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:149
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:159
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:169
-#, fuzzy
msgid "Packages successfully restored."
-msgstr "Ревізію {0} успішно повернуто."
+msgstr "Пакунки успішно відновлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:150
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:160
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:170
-#, fuzzy
msgid "Could not restore packages."
-msgstr "Не вдалось запустити перетворення."
+msgstr "Не вдалось відновити пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:151
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:161
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:171
-#, fuzzy
msgid "Packages restored with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "Пакунки відновлено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:158
msgid "Restoring packages before update..."
-msgstr ""
+msgstr "Відновлення пакунків перед оновленням..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:168
-#, fuzzy
msgid "Restoring packages for project..."
-msgstr "Створити нові пакети для проекту"
+msgstr "Відновлення пакунків для проекту..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:178
-#, fuzzy
msgid "Checking package compatibility with new target framework..."
-msgstr "Не сумісний цільовий фреймворк: {0}"
+msgstr "Перевірка сумісності пакунків з новим цільовим фреймворком..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:179
-#, fuzzy
msgid "Packages are compatible."
-msgstr "Не вказана назва пакета."
+msgstr "Пакунки сумісні."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:180
msgid "Could not check package compatibility."
-msgstr ""
+msgstr "Не вдалось перевірити сумісність пакунків."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:181
-#, fuzzy
msgid "Package retargeting required."
-msgstr "Настройки пакета"
+msgstr "Необхідне перенацілення пакунка."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:188
-#, fuzzy
msgid "Retargeting {0}..."
-msgstr "Запуск {0}"
+msgstr "Перенацілення {0}..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:189
-#, fuzzy
msgid "{0} successfully retargeted."
-msgstr "{0} були створені успішно."
+msgstr "{0} перенацілено успішно."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:190
-#, fuzzy
msgid "Could not retarget {0}."
-msgstr "Не вдалось створити теку '{0}'."
+msgstr "Не вдалось перенацілити '{0}'."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:191
-#, fuzzy
msgid "{0} retargeted with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "{0} перенацілено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:198
msgid "Retargeting {0} packages..."
-msgstr ""
+msgstr "Перенацілення {0} пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:199
-#, fuzzy
msgid "{0} packages successfully retargeted."
-msgstr "{0} були створені успішно."
+msgstr "{0} пакунків успішно перенацілено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:200
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:210
-#, fuzzy
msgid "Could not retarget packages."
-msgstr "Не вдалось запустити перетворення."
+msgstr "Не вдалось перенацілити пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:201
-#, fuzzy
msgid "{0} packages retargeted with warnings."
-msgstr "Операція завершилась з попередженнями."
+msgstr "{0} пакунків перенацілено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:208
-#, fuzzy
msgid "Retargeting packages..."
-msgstr "Створити пакет..."
+msgstr "Перенацілення пакунків..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:209
-#, fuzzy
msgid "Packages successfully retargeted."
-msgstr "Ревізію {0} успішно повернуто."
+msgstr "Пакунки успішно перенацілено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProgressMonitorStatusMessageFactory.cs:211
-#, fuzzy
msgid "Packages retarget with warnings."
-msgstr "Настройки пакета"
+msgstr "Пакунки перенацілено з попередженнями."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs:63
-#, fuzzy
msgid "Search Packages..."
-msgstr "Створити пакет..."
+msgstr "Знайти пакунки..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectReferencesFromPackagesFolderNodeBuilder.cs:48
-#, fuzzy
msgid "From Packages"
-msgstr "Пакети"
+msgstr "З пакунків"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.cs:68
-#, fuzzy
msgid "Edit Package Source"
-msgstr "Редагувати пакети"
+msgstr "Редагувати джерело пакунків"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:44
-#, fuzzy
msgid "Add Package Source"
-msgstr "Додати пакет..."
+msgstr "Додати джерело пакунків"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:68
msgid "URL"
-msgstr ""
+msgstr "Адреса"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:81
msgid "Username"
@@ -20180,17 +19939,15 @@ msgstr "Користувач"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:87
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:101
msgid "Private sources only"
-msgstr ""
+msgstr "Лише приватні джерела"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:95
-#, fuzzy
msgid "Password"
-msgstr "Пароль:"
+msgstr "Пароль"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:109
-#, fuzzy
msgid "Add Source"
-msgstr "Джерело"
+msgstr "Додати джерело"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackageSourceDialog.UI.cs:114
#: ../src/tools/mdmonitor/gtk-gui/Mono.Instrumentation.Monitor.InstrumentationViewerDialog.cs:2
@@ -20200,33 +19957,28 @@ msgstr "Зберегти"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:89
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:149
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:165
-#, fuzzy
msgid "Unreachable"
-msgstr "Код недосяжний"
+msgstr "Недосяжно"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:132
-#, fuzzy
msgid "Directory not found"
-msgstr "Теку не знайдено: {0}"
+msgstr "Теки не існує"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:142
-#, fuzzy
msgid "Invalid credentials"
-msgstr "Реєстраційні дані Git"
+msgstr "Помилка реєстраційних даних"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSourceViewModelChecker.cs:152
-#, fuzzy
msgid "Proxy authentication required"
-msgstr "Область аутентифікації:"
+msgstr "Проксі вимагає аутентифікації"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityRunner.cs:152
-#, fuzzy
msgid "Incompatible packages found."
-msgstr "Компілятор IL (ilasm) не знайдено."
+msgstr "Знайдено несумісні пакунки."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ReinstallProjectPackagesAction.cs:124
msgid "Package {0} {1} not found in package source."
-msgstr ""
+msgstr "Пакунок {0} {1} не знайдено у джерелі пакунків."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProjectPackagesCompatibilityReport.cs:111
msgid ""
@@ -20236,6 +19988,11 @@ msgid ""
"and may no longer work. Retargeting these packages will fail and cause them "
"to be removed from the project."
msgstr ""
+"Дані пакунки не сумісні з цільовим фреймворком '{0}' поточного проекту."
+"Пакунки не містять посилань на збірки або файли з вмістом, сумісні з"
+"цільовим фреймворком поточного проекту і можуть припинити роботу. "
+"Перенацілення цих пакунків буде невдалим і спричинить їх вилучення "
+"з проекту."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/ProjectPackagesCompatibilityReport.cs:117
msgid ""
@@ -20244,964 +20001,924 @@ msgid ""
"'{0}'. The packages contain assembly references or content files for the "
"current project target framework which are not currently installed."
msgstr ""
+"Дані пакунки потрібно перенацілити. Вони встановлені з цільовим "
+"фреймворком, що відрізняється від цільового фреймворку '{0}' "
+"поточного проекту. Пакунки містять посилання на збірки або файли з вмістом "
+"для цільового фреймворку поточного проекту, які зараз не встановлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInSolution.cs:219
-#, fuzzy
msgid "Checking {0} for updates..."
-msgstr "По_шук оновлень..."
+msgstr "Перевірка оновлень {0}..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInSolution.cs:225
-#, fuzzy
msgid "{0} update found."
-msgstr "Оновлень не знайдено"
+msgstr "Знайдено оновлення {0}."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInSolution.cs:227
-#, fuzzy
msgid "{0} updates found."
-msgstr "Оновлень не знайдено"
+msgstr "Знайдено {0} оновлень."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Commands/PackageManagementStartupHandler.cs:123
msgid "Unable to close the solution when NuGet packages are being processed."
-msgstr ""
+msgstr "Неможливо закрити рішення коли обробляються пакунки NuGet."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/RestorePackagesAction.cs:103
-#, fuzzy
msgid "Skipping '{0}' because it is already restored."
-msgstr "Tип '{0}' вже зареєстровано"
+msgstr "Пропускаємо '{0}', оскільки його вже відновлено."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/RestorePackagesAction.cs:111
msgid "1 package restored successfully."
-msgstr ""
+msgstr "1 пакунок відновлено успішно."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/RestorePackagesAction.cs:113
-#, fuzzy
msgid "{0} packages restored successfully."
-msgstr "{0} були створені успішно."
+msgstr "{0} пакунків відновлено успішно."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:9
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:108
msgid "NuGet"
-msgstr ""
+msgstr "NuGet"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:12
-#, fuzzy
msgid "Add NuGet packages to the project"
-msgstr "Створити нові пакети для проекту"
+msgstr "Додати до проекту пакунки NuGet"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:13
-#, fuzzy
msgid "Add NuGet _Packages..."
-msgstr "Додати пакет..."
+msgstr "Додати _пакунки NuGet..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:17
-#, fuzzy
msgid "Add packages to the project"
-msgstr "Створити нові пакети для проекту"
+msgstr "Додати пакунки до проекту"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:18
-#, fuzzy
msgid "Add _Packages..."
-msgstr "Додати пакет..."
+msgstr "Додати пакунки..."
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:22
-#, fuzzy
msgid "Restore missing NuGet packages"
-msgstr "Відновлення локальних змін"
+msgstr "Відновити відсутні пакунки NuGet"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:23
-#, fuzzy
msgid "_Restore NuGet Packages"
-msgstr "Системні пакети"
+msgstr "Відновити _пакунки NuGet"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:27
-#, fuzzy
msgid "Restore missing packages"
-msgstr "Відновлення локальних змін"
+msgstr "Відновити відсутні пакунки"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:28
-#, fuzzy
msgid "_Restore"
-msgstr "Відновлено '{0}'"
+msgstr "_Відновити"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:32
-#, fuzzy
msgid "Current package version"
-msgstr "Поточне рішення"
+msgstr "Поточна версія пакунка"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:36
-#, fuzzy
msgid "Retarget package"
-msgstr "Створити пакет"
+msgstr "Перенацілити пакунок"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:37
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:55
-#, fuzzy
msgid "Re_target"
-msgstr "_Редагувати цілі"
+msgstr "_Перенацілити"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:40
-#, fuzzy
msgid "Update package"
-msgstr "Редагувати пакети"
+msgstr "Оновити пакунок"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:44
-#, fuzzy
msgid "Update all packages"
-msgstr "Редагувати пакети"
+msgstr "Оновити всі пакунки"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:49
-#, fuzzy
msgid "Update all NuGet packages in the solution"
-msgstr "Зберегти конфігурацію пакета у рішенні"
+msgstr "Оновити всі пакунки NuGet у рішенні"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:50
-#, fuzzy
msgid "_Update NuGet Packages"
-msgstr "Створити пакет"
+msgstr "_Оновити пакунки NuGet"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:54
-#, fuzzy
msgid "Retargets all packages"
-msgstr "Вибрані пакети:"
+msgstr "Перенацілює всі пакунки"
#: ../src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.addin.xml:110
-#, fuzzy
msgid "Sources"
-msgstr "Джерело"
+msgstr "Джерела"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:67
msgid "ApplicationRecoverFailedToRegisterForRestartBadParameters"
-msgstr ""
+msgstr "ApplicationRecoverFailedToRegisterForRestartBadParameters"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:76
msgid "ApplicationRecoveryBadParameters"
-msgstr ""
+msgstr "ApplicationRecoveryBadParameters"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:85
msgid "ApplicationRecoveryFailedToRegister"
-msgstr ""
+msgstr "ApplicationRecoveryFailedToRegister"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:94
msgid "ApplicationRecoveryFailedToRegisterForRestart"
-msgstr ""
+msgstr "ApplicationRecoveryFailedToRegisterForRestart"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:103
msgid "ApplicationRecoveryFailedToUnregister"
-msgstr ""
+msgstr "ApplicationRecoveryFailedToUnregister"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:112
msgid "ApplicationRecoveryFailedToUnregisterForRestart"
-msgstr ""
+msgstr "ApplicationRecoveryFailedToUnregisterForRestart"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:121
msgid "ApplicationRecoveryMustBeCalledFromCallback"
-msgstr ""
+msgstr "ApplicationRecoveryMustBeCalledFromCallback"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:130
msgid "BatteryStateStringRepresentation"
-msgstr ""
+msgstr "BatteryStateStringRepresentation"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:139
msgid "CancelableCannotBeChanged"
-msgstr ""
+msgstr "CancelableCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:148
msgid "CaptionCannotBeChanged"
-msgstr ""
+msgstr "CaptionCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:157
msgid "CheckBoxCannotBeChanged"
-msgstr ""
+msgstr "CheckBoxCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:166
msgid "CollapsedTextCannotBeChanged"
-msgstr ""
+msgstr "CollapsedTextCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:175
msgid "CoreHelpersRunningOn7"
-msgstr ""
+msgstr "CoreHelpersRunningOn7"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:184
msgid "CoreHelpersRunningOnVista"
-msgstr ""
+msgstr "CoreHelpersRunningOnVista"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:193
msgid "CoreHelpersRunningOnXp"
-msgstr ""
+msgstr "CoreHelpersRunningOnXp"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:202
msgid "DialogCollectionCannotHaveDuplicateNames"
-msgstr ""
+msgstr "DialogCollectionCannotHaveDuplicateNames"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:211
msgid "DialogCollectionControlAlreadyHosted"
-msgstr ""
+msgstr "DialogCollectionControlAlreadyHosted"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:220
-#, fuzzy
msgid "DialogCollectionControlNameNull"
-msgstr "Назва колекції"
+msgstr "DialogCollectionControlNameNull"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:229
msgid "DialogCollectionModifyShowingDialog"
-msgstr ""
+msgstr "DialogCollectionModifyShowingDialog"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:238
msgid "DialogControlNameCannotBeEmpty"
-msgstr ""
+msgstr "DialogControlNameCannotBeEmpty"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:247
msgid "DialogControlsCannotBeRenamed"
-msgstr ""
+msgstr "DialogControlsCannotBeRenamed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:256
msgid "DialogDefaultCaption"
-msgstr ""
+msgstr "DialogDefaultCaption"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:265
msgid "DialogDefaultContent"
-msgstr ""
+msgstr "DialogDefaultContent"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:274
msgid "DialogDefaultMainInstruction"
-msgstr ""
+msgstr "DialogDefaultMainInstruction"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:283
msgid "ExpandedDetailsCannotBeChanged"
-msgstr ""
+msgstr "ExpandedDetailsCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:292
msgid "ExpandedLabelCannotBeChanged"
-msgstr ""
+msgstr "ExpandedLabelCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:301
msgid "ExpandingStateCannotBeChanged"
-msgstr ""
+msgstr "ExpandingStateCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:310
msgid "HyperlinksCannotBetSet"
-msgstr ""
+msgstr "HyperlinksCannotBetSet"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:319
-#, fuzzy
msgid "InvalidReferencePath"
-msgstr "Шлях посилання"
+msgstr "InvalidReferencePath"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:328
msgid "MessageManagerHandlerNotRegistered"
-msgstr ""
+msgstr "MessageManagerHandlerNotRegistered"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:337
-#, fuzzy
msgid "NativeTaskDialogConfigurationError"
-msgstr "Активна конфігурація"
+msgstr "NativeTaskDialogConfigurationError"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:346
msgid "NativeTaskDialogInternalErrorArgs"
-msgstr ""
+msgstr "NativeTaskDialogInternalErrorArgs"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:355
msgid "NativeTaskDialogInternalErrorComplex"
-msgstr ""
+msgstr "NativeTaskDialogInternalErrorComplex"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:364
-#, fuzzy
msgid "NativeTaskDialogInternalErrorUnexpected"
-msgstr "ПомилкаРозбору_Неочікувана"
+msgstr "NativeTaskDialogInternalErrorUnexpected"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:373
msgid "NativeTaskDialogVersionError"
-msgstr ""
+msgstr "NativeTaskDialogVersionError"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:382
msgid "OwnerCannotBeChanged"
-msgstr ""
+msgstr "OwnerCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:391
-#, fuzzy
msgid "PowerExecutionStateFailed"
-msgstr "Виконання завершилось невдало."
+msgstr "PowerExecutionStateFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:400
msgid "PowerInsufficientAccessBatteryState"
-msgstr ""
+msgstr "PowerInsufficientAccessBatteryState"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:409
msgid "PowerInsufficientAccessCapabilities"
-msgstr ""
+msgstr "PowerInsufficientAccessCapabilities"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:418
msgid "PowerManagerActiveSchemeFailed"
-msgstr ""
+msgstr "PowerManagerActiveSchemeFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:427
msgid "PowerManagerBatteryNotPresent"
-msgstr ""
+msgstr "PowerManagerBatteryNotPresent"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:436
msgid "ProgressBarCannotBeChanged"
-msgstr ""
+msgstr "ProgressBarCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:445
msgid "ProgressBarCannotBeHostedInMultipleDialogs"
-msgstr ""
+msgstr "ProgressBarCannotBeHostedInMultipleDialogs"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:454
-#, fuzzy
msgid "PropertyKeyFormatString"
-msgstr "Оголошення властивості"
+msgstr "PropertyKeyFormatString"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:463
msgid "PropVariantInitializationError"
-msgstr ""
+msgstr "PropVariantInitializationError"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:472
msgid "PropVariantMultiDimArray"
-msgstr ""
+msgstr "PropVariantMultiDimArray"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:481
msgid "PropVariantNullString"
-msgstr ""
+msgstr "PropVariantNullString"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:490
msgid "PropVariantTypeNotSupported"
-msgstr ""
+msgstr "PropVariantTypeNotSupported"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:499
msgid "PropVariantUnsupportedType"
-msgstr ""
+msgstr "PropVariantUnsupportedType"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:508
msgid "RecoverySettingsFormatString"
-msgstr ""
+msgstr "RecoverySettingsFormatString"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:517
msgid "RestartSettingsFormatString"
-msgstr ""
+msgstr "RestartSettingsFormatString"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:526
msgid "StandardButtonsCannotBeChanged"
-msgstr ""
+msgstr "StandardButtonsCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:535
msgid "StartupLocationCannotBeChanged"
-msgstr ""
+msgstr "StartupLocationCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:544
msgid "TaskDialogBadButtonId"
-msgstr ""
+msgstr "TaskDialogBadButtonId"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:553
msgid "TaskDialogButtonTextEmpty"
-msgstr ""
+msgstr "TaskDialogButtonTextEmpty"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:562
msgid "TaskDialogCheckBoxTextRequiredToEnableCheckBox"
-msgstr ""
+msgstr "TaskDialogCheckBoxTextRequiredToEnableCheckBox"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:571
msgid "TaskDialogCloseNonShowing"
-msgstr ""
+msgstr "TaskDialogCloseNonShowing"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:580
msgid "TaskDialogDefaultCaption"
-msgstr ""
+msgstr "TaskDialogDefaultCaption"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:589
msgid "TaskDialogDefaultContent"
-msgstr ""
+msgstr "TaskDialogDefaultContent"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:598
msgid "TaskDialogDefaultMainInstruction"
-msgstr ""
+msgstr "TaskDialogDefaultMainInstruction"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:607
msgid "TaskDialogOnlyOneDefaultControl"
-msgstr ""
+msgstr "TaskDialogOnlyOneDefaultControl"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:616
msgid "TaskDialogProgressBarMaxValueGreaterThanMin"
-msgstr ""
+msgstr "TaskDialogProgressBarMaxValueGreaterThanMin"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:625
msgid "TaskDialogProgressBarMinValueGreaterThanZero"
-msgstr ""
+msgstr "TaskDialogProgressBarMinValueGreaterThanZero"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:634
msgid "TaskDialogProgressBarMinValueLessThanMax"
-msgstr ""
+msgstr "TaskDialogProgressBarMinValueLessThanMax"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:643
msgid "TaskDialogProgressBarValueInRange"
-msgstr ""
+msgstr "TaskDialogProgressBarValueInRange"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:652
msgid "TaskDialogSupportedButtonsAndButtons"
-msgstr ""
+msgstr "TaskDialogSupportedButtonsAndButtons"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:661
msgid "TaskDialogSupportedButtonsAndLinks"
-msgstr ""
+msgstr "TaskDialogSupportedButtonsAndLinks"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Core/Resources/LocalizedMessages.Designer.cs:670
msgid "TaskDialogUnkownControl"
-msgstr ""
+msgstr "TaskDialogUnkownControl"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:67
msgid "AddToMostRecentlyUsedListCannotBeChanged"
-msgstr ""
+msgstr "AddToMostRecentlyUsedListCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:76
msgid "AlwaysAppendDefaultExtensionCannotBeChanged"
-msgstr ""
+msgstr "AlwaysAppendDefaultExtensionCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:85
msgid "ComboBoxIndexOutsideBounds"
-msgstr ""
+msgstr "ComboBoxIndexOutsideBounds"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:94
msgid "CommonFileDialogCanceled"
-msgstr ""
+msgstr "CommonFileDialogCanceled"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:103
msgid "CommonFileDialogCannotCreateShellItem"
-msgstr ""
+msgstr "CommonFileDialogCannotCreateShellItem"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:112
msgid "CommonFileDialogInvalidHandle"
-msgstr ""
+msgstr "CommonFileDialogInvalidHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:121
msgid "CommonFileDialogMultipleFiles"
-msgstr ""
+msgstr "CommonFileDialogMultipleFiles"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:130
msgid "CommonFileDialogMultipleItems"
-msgstr ""
+msgstr "CommonFileDialogMultipleItems"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:139
msgid "CommonFileDialogNotClosed"
-msgstr ""
+msgstr "CommonFileDialogNotClosed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:148
msgid "CommonFileDialogRequiresVista"
-msgstr ""
+msgstr "CommonFileDialogRequiresVista"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:157
msgid "CommonFiltersOffice"
-msgstr ""
+msgstr "CommonFiltersOffice"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:166
msgid "CommonFiltersPicture"
-msgstr ""
+msgstr "CommonFiltersPicture"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:175
-#, fuzzy
msgid "CommonFiltersText"
-msgstr "Надіслати зміни"
+msgstr "CommonFiltersText"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:184
msgid "CreatePromptCannotBeChanged"
-msgstr ""
+msgstr "CreatePromptCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:193
msgid "DialogControlCollectionCannotRemoveControls"
-msgstr ""
+msgstr "DialogControlCollectionCannotRemoveControls"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:202
msgid "DialogControlCollectionEmptyName"
-msgstr ""
+msgstr "DialogControlCollectionEmptyName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:211
msgid "DialogControlCollectionMenuItemControlsCannotBeAdded"
-msgstr ""
+msgstr "DialogControlCollectionMenuItemControlsCannotBeAdded"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:220
msgid "DialogControlCollectionModifyingControls"
-msgstr ""
+msgstr "DialogControlCollectionModifyingControls"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:229
msgid "DialogControlCollectionMoreThanOneControl"
-msgstr ""
+msgstr "DialogControlCollectionMoreThanOneControl"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:238
msgid "DialogControlCollectionRemoveControlFirst"
-msgstr ""
+msgstr "DialogControlCollectionRemoveControlFirst"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:247
msgid "EnsureFileExistsCannotBeChanged"
-msgstr ""
+msgstr "EnsureFileExistsCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:256
msgid "EnsurePathExistsCannotBeChanged"
-msgstr ""
+msgstr "EnsurePathExistsCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:265
msgid "EnsureReadonlyCannotBeChanged"
-msgstr ""
+msgstr "EnsureReadonlyCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:274
msgid "EnsureValidNamesCannotBeChanged"
-msgstr ""
+msgstr "EnsureValidNamesCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:283
msgid "ExplorerBrowserBrowseToObjectFailed"
-msgstr ""
+msgstr "ExplorerBrowserBrowseToObjectFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:292
msgid "ExplorerBrowserFailedToGetView"
-msgstr ""
+msgstr "ExplorerBrowserFailedToGetView"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:301
msgid "ExplorerBrowserIconSize"
-msgstr ""
+msgstr "ExplorerBrowserIconSize"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:310
msgid "ExplorerBrowserItemCount"
-msgstr ""
+msgstr "ExplorerBrowserItemCount"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:319
msgid "ExplorerBrowserSelectedItemCount"
-msgstr ""
+msgstr "ExplorerBrowserSelectedItemCount"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:328
-#, fuzzy
msgid "ExplorerBrowserUnexpectedError"
-msgstr "ПомилкаРозбору_Неочікувана"
+msgstr "ExplorerBrowserUnexpectedError"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:337
msgid "ExplorerBrowserViewItems"
-msgstr ""
+msgstr "ExplorerBrowserViewItems"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:346
-#, fuzzy
msgid "FilePathNotExist"
-msgstr "Шлях до файлу"
+msgstr "FilePathNotExist"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:355
msgid "FolderIdsUnknownGuid"
-msgstr ""
+msgstr "FolderIdsUnknownGuid"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:364
-#, fuzzy
msgid "FolderTypeCategory"
-msgstr "Категорія"
+msgstr "FolderTypeCategory"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:373
msgid "FolderTypeClassic"
-msgstr ""
+msgstr "FolderTypeClassic"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:382
msgid "FolderTypeCommunications"
-msgstr ""
+msgstr "FolderTypeCommunications"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:391
msgid "FolderTypeCompressedFolder"
-msgstr ""
+msgstr "FolderTypeCompressedFolder"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:400
msgid "FolderTypeContacts"
-msgstr ""
+msgstr "FolderTypeContacts"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:409
-#, fuzzy
msgid "FolderTypeDocuments"
-msgstr "Закрити документи"
+msgstr "FolderTypeDocuments"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:418
msgid "FolderTypeGames"
-msgstr ""
+msgstr "FolderTypeGames"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:427
msgid "FolderTypeGenericLibrary"
-msgstr ""
+msgstr "FolderTypeGenericLibrary"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:436
msgid "FolderTypeInvalid"
-msgstr ""
+msgstr "FolderTypeInvalid"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:445
-#, fuzzy
msgid "FolderTypeLibrary"
-msgstr "Портативна бібліотека"
+msgstr "FolderTypeLibrary"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:454
msgid "FolderTypeMusic"
-msgstr ""
+msgstr "FolderTypeMusic"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:463
msgid "FolderTypeMusicIcons"
-msgstr ""
+msgstr "FolderTypeMusicIcons"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:472
msgid "FolderTypeNetworkExplorer"
-msgstr ""
+msgstr "FolderTypeNetworkExplorer"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:481
-#, fuzzy
msgid "FolderTypeNotSpecified"
-msgstr "Не вказана назва файлу"
+msgstr "FolderTypeNotSpecified"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:490
msgid "FolderTypeOpenSearch"
-msgstr ""
+msgstr "FolderTypeOpenSearch"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:499
msgid "FolderTypeOtherUsers"
-msgstr ""
+msgstr "FolderTypeOtherUsers"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:508
msgid "FolderTypePictures"
-msgstr ""
+msgstr "FolderTypePictures"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:517
-#, fuzzy
msgid "FolderTypePrinters"
-msgstr "Параметри-типи"
+msgstr "FolderTypePrinters"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:526
msgid "FolderTypeRecordedTV"
-msgstr ""
+msgstr "FolderTypeRecordedTV"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:535
msgid "FolderTypeRecycleBin"
-msgstr ""
+msgstr "FolderTypeRecycleBin"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:544
msgid "FolderTypeSavedGames"
-msgstr ""
+msgstr "FolderTypeSavedGames"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:553
msgid "FolderTypeSearchConnector"
-msgstr ""
+msgstr "FolderTypeSearchConnector"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:562
-#, fuzzy
msgid "FolderTypeSearches"
-msgstr "Очистити список останніх пошуків"
+msgstr "FolderTypeSearches"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:571
-#, fuzzy
msgid "FolderTypeSearchResults"
-msgstr "Результати пошуку"
+msgstr "FolderTypeSearchResults"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:580
msgid "FolderTypeSoftwareExplorer"
-msgstr ""
+msgstr "FolderTypeSoftwareExplorer"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:589
msgid "FolderTypeUserFiles"
-msgstr ""
+msgstr "FolderTypeUserFiles"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:598
msgid "FolderTypeUserLibraries"
-msgstr ""
+msgstr "FolderTypeUserLibraries"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:607
msgid "FolderTypeVideos"
-msgstr ""
+msgstr "FolderTypeVideos"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:616
msgid "IsExpandedModeCannotBeChanged"
-msgstr ""
+msgstr "IsExpandedModeCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:625
msgid "JumpListCustomCategoriesDisabled"
-msgstr ""
+msgstr "JumpListCustomCategoriesDisabled"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:634
msgid "JumpListFileTypeNotRegistered"
-msgstr ""
+msgstr "JumpListFileTypeNotRegistered"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:643
msgid "JumpListLinkPathRequired"
-msgstr ""
+msgstr "JumpListLinkPathRequired"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:652
msgid "JumpListLinkTitleRequired"
-msgstr ""
+msgstr "JumpListLinkTitleRequired"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:661
msgid "JumpListNegativeOrdinalPosition"
-msgstr ""
+msgstr "JumpListNegativeOrdinalPosition"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:670
msgid "KnownFolderInvalidGuid"
-msgstr ""
+msgstr "KnownFolderInvalidGuid"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:679
msgid "KnownFolderParsingName"
-msgstr ""
+msgstr "KnownFolderParsingName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:688
msgid "MessageListenerCannotCreateWindow"
-msgstr ""
+msgstr "MessageListenerCannotCreateWindow"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:697
msgid "MessageListenerClassNotRegistered"
-msgstr ""
+msgstr "MessageListenerClassNotRegistered"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:706
msgid "MessageListenerFilterUnableToRegister"
-msgstr ""
+msgstr "MessageListenerFilterUnableToRegister"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:715
msgid "MessageListenerFilterUnknownListenerHandle"
-msgstr ""
+msgstr "MessageListenerFilterUnknownListenerHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:724
msgid "MessageListenerNoWindowHandle"
-msgstr ""
+msgstr "MessageListenerNoWindowHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:733
msgid "NavigateToShortcutCannotBeChanged"
-msgstr ""
+msgstr "NavigateToShortcutCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:742
msgid "NavigationLogNullParent"
-msgstr ""
+msgstr "NavigationLogNullParent"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:751
msgid "NotImplementedException"
-msgstr ""
+msgstr "NotImplementedException"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:760
msgid "OverwritePromptCannotBeChanged"
-msgstr ""
+msgstr "OverwritePromptCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:769
msgid "PropertyCollectionCanonicalInvalidIndex"
-msgstr ""
+msgstr "PropertyCollectionCanonicalInvalidIndex"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:778
msgid "PropertyCollectionInvalidIndex"
-msgstr ""
+msgstr "PropertyCollectionInvalidIndex"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:787
msgid "PropertyCollectionNullCanonicalName"
-msgstr ""
+msgstr "PropertyCollectionNullCanonicalName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:796
msgid "RadioButtonListIndexOutOfBounds"
-msgstr ""
+msgstr "RadioButtonListIndexOutOfBounds"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:805
msgid "RestoreDirectoryCannotBeChanged"
-msgstr ""
+msgstr "RestoreDirectoryCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:814
-#, fuzzy
msgid "SaveFileNullItem"
-msgstr "Зберегти файли"
+msgstr "SaveFileNullItem"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:823
msgid "SearchConditionFactoryInvalidProperty"
-msgstr ""
+msgstr "SearchConditionFactoryInvalidProperty"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:832
msgid "ShellExceptionDefaultText"
-msgstr ""
+msgstr "ShellExceptionDefaultText"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:841
msgid "ShellHelperGetParsingNameFailed"
-msgstr ""
+msgstr "ShellHelperGetParsingNameFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:850
msgid "ShellInvalidCanonicalName"
-msgstr ""
+msgstr "ShellInvalidCanonicalName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:859
msgid "ShellLibraryDefaultSaveFolderNotFound"
-msgstr ""
+msgstr "ShellLibraryDefaultSaveFolderNotFound"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:868
msgid "ShellLibraryEmptyName"
-msgstr ""
+msgstr "ShellLibraryEmptyName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:877
msgid "ShellLibraryFolderNotFound"
-msgstr ""
+msgstr "ShellLibraryFolderNotFound"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:886
msgid "ShellLibraryInvalidFolderType"
-msgstr ""
+msgstr "ShellLibraryInvalidFolderType"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:895
-#, fuzzy
msgid "ShellLibraryInvalidLibrary"
-msgstr "Спільна бібліотека"
+msgstr "ShellLibraryInvalidLibrary"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:904
msgid "ShellObjectCannotGetDisplayName"
-msgstr ""
+msgstr "ShellObjectCannotGetDisplayName"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:913
msgid "ShellObjectCollectionArrayTooSmall"
-msgstr ""
+msgstr "ShellObjectCollectionArrayTooSmall"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:922
msgid "ShellObjectCollectionEmptyCollection"
-msgstr ""
+msgstr "ShellObjectCollectionEmptyCollection"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:931
msgid "ShellObjectCollectionInsertReadOnly"
-msgstr ""
+msgstr "ShellObjectCollectionInsertReadOnly"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:940
msgid "ShellObjectCollectionRemoveReadOnly"
-msgstr ""
+msgstr "ShellObjectCollectionRemoveReadOnly"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:949
-#, fuzzy
msgid "ShellObjectCreationFailed"
-msgstr "Створення об'єкта"
+msgstr "ShellObjectCreationFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:958
msgid "ShellObjectFactoryPlatformNotSupported"
-msgstr ""
+msgstr "ShellObjectFactoryPlatformNotSupported"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:967
msgid "ShellObjectFactoryUnableToCreateItem"
-msgstr ""
+msgstr "ShellObjectFactoryUnableToCreateItem"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:976
msgid "ShellObjectWatcherRegisterFailed"
-msgstr ""
+msgstr "ShellObjectWatcherRegisterFailed"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:985
msgid "ShellObjectWatcherUnableToChangeEvents"
-msgstr ""
+msgstr "ShellObjectWatcherUnableToChangeEvents"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:994
msgid "ShellPropertyCannotSetProperty"
-msgstr ""
+msgstr "ShellPropertyCannotSetProperty"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1003
msgid "ShellPropertyFactoryConstructorNotFound"
-msgstr ""
+msgstr "ShellPropertyFactoryConstructorNotFound"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1012
msgid "ShellPropertySetValue"
-msgstr ""
+msgstr "ShellPropertySetValue"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1021
msgid "ShellPropertyUnableToGetWritableProperty"
-msgstr ""
+msgstr "ShellPropertyUnableToGetWritableProperty"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1030
msgid "ShellPropertyValueTruncated"
-msgstr ""
+msgstr "ShellPropertyValueTruncated"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1039
msgid "ShellPropertyWindows7"
-msgstr ""
+msgstr "ShellPropertyWindows7"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1048
msgid "ShellPropertyWrongType"
-msgstr ""
+msgstr "ShellPropertyWrongType"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1057
msgid "ShellSearchFolderUnableToSetSortColumns"
-msgstr ""
+msgstr "ShellSearchFolderUnableToSetSortColumns"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1066
msgid "ShellSearchFolderUnableToSetVisibleColumns"
-msgstr ""
+msgstr "ShellSearchFolderUnableToSetVisibleColumns"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1075
msgid "ShellThumbnailCurrentSizeRange"
-msgstr ""
+msgstr "ShellThumbnailCurrentSizeRange"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1084
msgid "ShellThumbnailDoesNotHaveThumbnail"
-msgstr ""
+msgstr "ShellThumbnailDoesNotHaveThumbnail"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1093
msgid "ShellThumbnailNoHandler"
-msgstr ""
+msgstr "ShellThumbnailNoHandler"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1102
msgid "ShellThumbnailSizeCannotBe0"
-msgstr ""
+msgstr "ShellThumbnailSizeCannotBe0"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1111
msgid "ShowHiddenItemsCannotBeChanged"
-msgstr ""
+msgstr "ShowHiddenItemsCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1120
msgid "ShowPlacesListCannotBeChanged"
-msgstr ""
+msgstr "ShowPlacesListCannotBeChanged"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1129
msgid "StockIconInvalidGuid"
-msgstr ""
+msgstr "StockIconInvalidGuid"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1138
msgid "TabbedThumbnailZeroChildHandle"
-msgstr ""
+msgstr "TabbedThumbnailZeroChildHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1147
msgid "TabbedThumbnailZeroParentHandle"
-msgstr ""
+msgstr "TabbedThumbnailZeroParentHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1156
msgid "TasbarWindowProxyWindowSet"
-msgstr ""
+msgstr "TasbarWindowProxyWindowSet"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1165
msgid "TaskbarManagerValidWindowRequired"
-msgstr ""
+msgstr "TaskbarManagerValidWindowRequired"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1174
msgid "TaskbarWindowEmptyButtonArray"
-msgstr ""
+msgstr "TaskbarWindowEmptyButtonArray"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1183
msgid "TaskbarWindowManagerButtonsAlreadyAdded"
-msgstr ""
+msgstr "TaskbarWindowManagerButtonsAlreadyAdded"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1192
msgid "TaskbarWindowValueSet"
-msgstr ""
+msgstr "TaskbarWindowValueSet"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1201
msgid "ThumbnailManagerControlNotAdded"
-msgstr ""
+msgstr "ThumbnailManagerControlNotAdded"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1210
msgid "ThumbnailManagerInvalidHandle"
-msgstr ""
+msgstr "ThumbnailManagerInvalidHandle"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1219
msgid "ThumbnailManagerPreviewAdded"
-msgstr ""
+msgstr "ThumbnailManagerPreviewAdded"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1228
msgid "ThumbnailManagerPreviewNotAdded"
-msgstr ""
+msgstr "ThumbnailManagerPreviewNotAdded"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1237
msgid "ThumbnailToolbarManagerMaxButtons"
-msgstr ""
+msgstr "ThumbnailToolbarManagerMaxButtons"
#: ../src/addins/WindowsPlatform/WindowsAPICodePack/Shell/Resources/LocalizedMessages.Designer.cs:1246
msgid "ThumbnailToolbarManagerNullEmptyArray"
-msgstr ""
+msgstr "ThumbnailToolbarManagerNullEmptyArray"
#: ../src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/IconButton.xaml.cs:216
-#, fuzzy
msgid "Stop currently running operation"
-msgstr "Припинити побудову або виконання застосунку"
+msgstr "Припинити поточну операцію"
#: ../src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/IconButton.xaml.cs:218
-#, fuzzy
msgid "Run current startup project"
-msgstr "Запустити поточний проект"
+msgstr "Запустити поточний початковий проект"
#: ../src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/IconButton.xaml.cs:220
-#, fuzzy
msgid "Build current startup project"
-msgstr "Побудувати поточний проект"
+msgstr "Побудувати поточний початковий проект"
#: ../external/ikvm/reflect/Projection.cs:19
msgid ""
@@ -21453,7 +21170,7 @@ msgstr "Доступні оновлення"
#: ../external/mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:2
msgid "This add-in can't be loaded due to missing dependencies"
-msgstr ""
+msgstr "Цей додаток неможливо завантажити через порушення залежностей"
#: ../external/mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoView.cs:2
msgid "Required: {0} v{1}, found v{2}"
@@ -21518,7 +21235,7 @@ msgstr "Інтерфейс {0} змінено."
#: ../external/nrefactory/ICSharpCode.NRefactory/Analysis/AbiComparer.cs:12
msgid "Type definition {0} is missing."
-msgstr ""
+msgstr "Пропущено опис типу {0}."
#: ../external/nrefactory/ICSharpCode.NRefactory/Analysis/AbiComparer.cs:17
msgid "Namespace {0} is missing."
@@ -21556,15 +21273,15 @@ msgstr "На віртуальний"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/AddAnotherAccessorCodeRefactoringProvider.cs:7
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/AddAnotherAccessorCodeRefactoringProvider.cs:6
msgid "Add another accessor"
-msgstr ""
+msgstr "Додати інший метод доступу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddAnotherAccessorAction.cs:2
msgid "Add setter"
-msgstr ""
+msgstr "Додати setter"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddAnotherAccessorAction.cs:2
msgid "Add getter"
-msgstr ""
+msgstr "Додати getter"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddArgumentNameAction.cs:2
msgid "Add name for argument"
@@ -21620,21 +21337,21 @@ msgstr "Перетворити на лямбда"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertAsToCastAction.cs:1
msgid "Convert 'as' to cast."
-msgstr ""
+msgstr "Перетворити 'as' на вказівку типу."
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertAsToCastAction.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplaceSafeCastWithDirectCastCodeRefactoringProvider.cs:4
msgid "Convert 'as' to cast"
-msgstr ""
+msgstr "Перетворити 'as' на вказівку типу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertCastToAsAction.cs:2
msgid "Convert cast to 'as'."
-msgstr ""
+msgstr "Перетворити вказівку типу на 'as'."
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertCastToAsAction.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplaceDirectCastWithSafeCastCodeRefactoringProvider.cs:2
msgid "Convert cast to 'as'"
-msgstr ""
+msgstr "Перетворити вказівку типу на 'as'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertDecToHexAction.cs:1
msgid "Convert dec to hex."
@@ -21705,7 +21422,7 @@ msgstr "Перетворити неявну реалізацію на явну"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertLambdaBodyExpressionToStatementAction.cs:1
msgid "Converts expression of lambda body to statement"
-msgstr ""
+msgstr "Перетворити вираз тіла лямбда на інструкцію"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertLambdaBodyExpressionToStatementAction.cs:3
msgid "Convert to lambda statement"
@@ -21713,7 +21430,7 @@ msgstr "Перетворити на інструкцію lambda"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertLambdaBodyStatementToExpressionAction.cs:1
msgid "Converts statement of lambda body to expression"
-msgstr ""
+msgstr "Перетворити інструкцію тіла лямбда на вираз"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertLambdaBodyStatementToExpressionAction.cs:2
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertMethodGroupToLambdaAction.cs:2
@@ -21740,7 +21457,7 @@ msgstr "Перетворити на анонімний метод"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertMethodGroupToLambdaAction.cs:1
msgid "Convert method group to lambda expression"
-msgstr ""
+msgstr "Перетворити групу методів на лямбда-вираз"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertSwitchToIfAction.cs:2
msgid "Convert 'switch' to 'if'"
@@ -21986,7 +21703,7 @@ msgstr "Створити відсутні мітки switch"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ImplementAbstractMembersAction.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ImplementAbstractMembersAction.cs:5
msgid "Implement abstract members"
-msgstr ""
+msgstr "Реалізувати абстрактні члени"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ImplementInterfaceAction.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ImplementInterfaceAction.cs:3
@@ -22021,7 +21738,7 @@ msgstr "Вставити підпис анонімного методу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceConstantAction.cs:3
msgid "Introduce constant"
-msgstr ""
+msgstr "Створити константу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceConstantAction.cs:7
msgid "Create local constant"
@@ -22038,16 +21755,16 @@ msgstr "Створити константу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceConstantAction.cs:8
msgid "Create local constant (replace '{0}' occurrences)"
-msgstr ""
+msgstr "Створити локальну константу (замінити входження '{0}')"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceConstantAction.cs:9
msgid "Create constant field (replace '{0}' occurrences)"
-msgstr ""
+msgstr "Створити поле-константу (замінити входження '{0}')"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceFormatItemAction.cs:2
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/IntroduceFormatItemAction.cs:3
msgid "Introduce format item"
-msgstr ""
+msgstr "Створити елемент формату"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/InvertConditionalOperatorAction.cs:1
msgid "Invert conditional operator"
@@ -22071,7 +21788,7 @@ msgstr "Інвертувати If і спростити"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/InvertIfAndSimplify.cs:4
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/SimplifyIfInLoopsFlowAction.cs:2
msgid "Simplify if in loops"
-msgstr ""
+msgstr "Спростити if у циклах"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/InvertLogicalExpressionAction.cs:1
msgid "Invert logical expression"
@@ -22112,7 +21829,7 @@ msgstr "Об'єднати рядки"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/LinqQueryToFluentAction.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/LinqQueryToFluentAction.cs:4
msgid "Convert LINQ query to fluent syntax"
-msgstr ""
+msgstr "Перетворити запит LINQ до плинного синтаксису"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/LinqFluentToQueryAction.cs:7
msgid "Convert to query syntax"
@@ -22162,7 +21879,7 @@ msgstr "вставити в 'using'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/RemoveBackingStoreAction.cs:1
msgid "Remove backing store for property"
-msgstr ""
+msgstr "Вилучити резервне сховище для властивості"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/RemoveBackingStoreAction.cs:2
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/Opportunities/ConvertToAutoPropertyIssue.cs:6
@@ -22191,7 +21908,7 @@ msgstr "Вилучити специфікатор типу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/RemoveRegionAction.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/RemoveRegionAction.cs:6
msgid "Remove region"
-msgstr ""
+msgstr "Вилучити ділянку"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReplaceEmptyStringAction.cs:1
msgid "Use string.Empty"
@@ -22291,11 +22008,11 @@ msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/NegativeRelationalExpressionIssue.cs:11
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/NegativeRelationalExpressionAnalyzer.cs:1
msgid "Simplify negative relational expression"
-msgstr ""
+msgstr "Спростити вираз з запереченням відношення"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/NotImplementedExceptionIssue.cs:1
msgid "Show NotImplementedExceptions"
-msgstr ""
+msgstr "Показати NotImplementedExceptions"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/NotImplementedExceptionIssue.cs:3
msgid "NotImplemented exception thrown"
@@ -22365,11 +22082,11 @@ msgstr "Параметр може бути {0}"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/NotWorking/VariableDeclaredInWideScopeIssue.cs:18
msgid "Variable could be moved to a nested scope"
-msgstr ""
+msgstr "Змінну можна перемістити всередину"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/NotWorking/VariableDeclaredInWideScopeIssue.cs:34
msgid "Move to nested scope"
-msgstr ""
+msgstr "Перемістити всередину"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/BaseMethodCallWithDefaultParameterIssue.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/BaseMethodCallWithDefaultParameterIssue.cs:12
@@ -22390,7 +22107,7 @@ msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/CanBeReplacedWithTryCastAndCheckForNullIssue.cs:2
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/CanBeReplacedWithTryCastAndCheckForNullIssue.cs:5
msgid "Type check and casts can be replaced with 'as' and null check"
-msgstr ""
+msgstr "Перевірку і вказівки типу можна замінити на 'as' без перевірок"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/CompareOfFloatsByEqualityOperatorIssue.cs:2
msgid "Compare floating point numbers with equality operator"
@@ -22566,7 +22283,7 @@ msgstr "Вилучити стандартне значення параметр
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/OptionalParameterHierarchyMismatchIssue.cs:12
msgid "Change default value to {0}"
-msgstr ""
+msgstr "Змінити типове значення на {0}"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/OptionalParameterHierarchyMismatchIssue.cs:12
msgid "Parameter {0} has default value in base method '{1}'"
@@ -22644,11 +22361,11 @@ msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/ValueParameterNotUsedIssue.cs:3
msgid "The add accessor does not use the 'value' parameter"
-msgstr ""
+msgstr "Метод доступу add не використовує параметра 'значення'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/ValueParameterNotUsedIssue.cs:3
msgid "The remove accessor does not use the 'value' parameter"
-msgstr ""
+msgstr "Метод доступу remove не використовує параметра 'значення'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerWarnings/CS1573ParameterHasNoMatchingParamTagIssue.cs:1
msgid "Parameter has no matching param tag in the XML comment"
@@ -22656,7 +22373,7 @@ msgstr "Параметр не має відповідного тегу param у
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerWarnings/CS1573ParameterHasNoMatchingParamTagIssue.cs:17
msgid "Missing xml documentation for Parameter '{0}'"
-msgstr ""
+msgstr "Відсутня документація xml для параметра '{0}'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerWarnings/CS1573ParameterHasNoMatchingParamTagIssue.cs:17
msgid "Create xml documentation for Parameter '{0}'"
@@ -22682,7 +22399,7 @@ msgstr "Полю лише для читання '{0}' не надано знач
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerWarnings/UnassignedReadonlyFieldIssue.cs:4
msgid "Initialize field from constructor parameter"
-msgstr ""
+msgstr "Ініціалізувати поле з параметра конструктора"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/ConstraintViolations/InconsistentNamingIssue/InconsistentNamingIssue.cs:1
msgid "Inconsistent Naming"
@@ -22734,7 +22451,7 @@ msgstr "'{0}' має починатися з малої літери. (Прав
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/ConstraintViolations/InconsistentNaming/NamingRule.cs:35
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/ConstraintViolations/InconsistentNaming/NamingRule.cs:36
msgid "'{0}' should not separate words with an underscore. (Rule '{1}')"
-msgstr ""
+msgstr "'{0}' не має відокремлювати слова знаком підкреслення. (Правило '{1}')"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/ConstraintViolations/InconsistentNamingIssue/NamingRule.cs:24
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/ConstraintViolations/InconsistentNamingIssue/NamingRule.cs:25
@@ -22782,12 +22499,12 @@ msgstr "Перетворити анонімний метод на групу м
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/Opportunities/ConvertClosureToMethodGroupIssue.cs:10
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertClosureToMethodGroupAnalyzer.cs:19
msgid "Anonymous method can be simplified to method group"
-msgstr ""
+msgstr "Анонімний метод можна спростити до групи методів"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/Opportunities/ConvertClosureToMethodGroupIssue.cs:10
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertClosureToMethodGroupAnalyzer.cs:19
msgid "Lambda expression can be simplified to method group"
-msgstr ""
+msgstr "Лямбда-вираз можна спростити до групи методів"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/Opportunities/ConvertClosureToMethodGroupIssue.cs:10
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertClosureToMethodGroupCodeFixProvider.cs:4
@@ -22861,11 +22578,11 @@ msgstr "Використати 'var'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/AccessToStaticMemberViaDerivedTypeIssue.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/AccessToStaticMemberViaDerivedTypeAnalyzer.cs:1
msgid "Call to static member via a derived class"
-msgstr ""
+msgstr "Виклик статичного члена через клас-нащадок"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/AccessToStaticMemberViaDerivedTypeIssue.cs:8
msgid "Static method invoked via derived type"
-msgstr ""
+msgstr "Виклик статичного методу через тип-нащадок"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/AccessToStaticMemberViaDerivedTypeIssue.cs:9
msgid "Use base qualifier"
@@ -23191,12 +22908,12 @@ msgstr "Замінити викликом 'Any()'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseMethodIsInstanceOfTypeIssue.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseMethodIsInstanceOfTypeAnalyzer.cs:1
msgid "Use method IsInstanceOfType"
-msgstr ""
+msgstr "Використати метод IsInstanceOfType"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseMethodIsInstanceOfTypeIssue.cs:4
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseMethodIsInstanceOfTypeAnalyzer.cs:1
msgid "Use method IsInstanceOfType (...)"
-msgstr ""
+msgstr "Використати метод IsInstanceOfType (...)"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseMethodIsInstanceOfTypeIssue.cs:4
msgid "Replace with call to IsInstanceOfType"
@@ -23266,7 +22983,7 @@ msgstr "Вилучити 'base.'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/RedundantBoolCompareIssue.cs:2
msgid "Comparison of boolean with 'true' or 'false'"
-msgstr ""
+msgstr "Порівняння логічного значення з 'true' або 'false'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/RedundantBoolCompareIssue.cs:10
msgid "Comparison with 'true' is redundant"
@@ -23299,7 +23016,7 @@ msgstr "Зайвий виклик"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/RedundantCastIssue.cs:11
msgid "Type cast is redundant"
-msgstr ""
+msgstr "Зайва вказівка типу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/RedundantCastIssue.cs:11
msgid "Remove cast to '{0}'"
@@ -23665,7 +23382,7 @@ msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Uncategorized/DontUseLinqWhenItsVerboseAndInefficientIssue.cs:21
msgid "Replace method by simpler version"
-msgstr ""
+msgstr "Замінити метод простішою версією"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertIfStatementToConditionalTernaryExpressionAction.cs:1
msgid "Convert 'if' to '?:'"
@@ -23760,7 +23477,7 @@ msgstr "Перетворити на 'foreach'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/UseAsAndNullCheckAction.cs:1
msgid "Use 'as' and null check"
-msgstr ""
+msgstr "Використати 'as' і перевірку на null"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/UseAsAndNullCheckAction.cs:8
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/UseAsAndNullCheckAction.cs:14
@@ -23769,7 +23486,7 @@ msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/UseAsAndNullCheckCodeRefactoringProvider.cs:10
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/UseAsAndNullCheckCodeRefactoringProvider.cs:24
msgid "Use 'as' and check for null"
-msgstr ""
+msgstr "Використати 'as' і перевірку на null"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ConvertForToWhileAction.cs:1
msgid "Convert 'for' loop to 'while'"
@@ -23800,7 +23517,7 @@ msgstr "Вилучити зайву гілку 'default'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CompilerErrors/CS0126ReturnMustBeFollowedByAnyExpression.cs:1
msgid "CS0126: A method with return type cannot return without value."
-msgstr ""
+msgstr "CS0126: Метод з типом повернення повинен повертати значення."
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CompilerErrors/CS0126ReturnMustBeFollowedByAnyExpression.cs:16
msgid "Return default value"
@@ -24027,12 +23744,12 @@ msgstr "'string.Compare' є культурозалежним"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseArrayCreationExpressionIssue.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseArrayCreationExpressionAnalyzer.cs:1
msgid "Use array creation expression"
-msgstr ""
+msgstr "Використати вираз створення масиву"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseArrayCreationExpressionIssue.cs:7
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseArrayCreationExpressionAnalyzer.cs:1
msgid "Use array create expression"
-msgstr ""
+msgstr "Використати вираз створення масиву"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/UseArrayCreationExpressionIssue.cs:7
msgid "Replace with 'new'"
@@ -24120,7 +23837,7 @@ msgstr "Методи розширення допускаються лише у
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerErrors/ProhibitedModifiersIssue.cs:23
msgid "Static constructors can't have any other modifier"
-msgstr ""
+msgstr "Статичний конструктор не може мати інших модифікаторів"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CompilerErrors/ProhibitedModifiersIssue.cs:23
msgid "Remove prohibited modifier"
@@ -24144,7 +23861,7 @@ msgstr "Виділити умову у внутрішню інструкцію '
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReverseDirectionForForLoopAction.cs:1
msgid "Reverse the direction of a for loop"
-msgstr ""
+msgstr "Змінити напрямок циклу for"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReverseDirectionForForLoopAction.cs:24
msgid "Reverse 'for' loop"
@@ -24325,7 +24042,7 @@ msgstr "Замінити на '{0} -= 1'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReplaceWithOperatorAssignmentAction.cs:1
msgid "Replace assignment with operator assignment"
-msgstr ""
+msgstr "Замінити присвоєння на присвоєння з операцією"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReplaceWithOperatorAssignmentAction.cs:3
msgid "Replace with '{0}='"
@@ -24333,7 +24050,7 @@ msgstr "Замінити на '{0}='"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReplaceOperatorAssignmentWithAssignmentAction.cs:1
msgid "Replace operator assignment with assignment"
-msgstr ""
+msgstr "Замінити присвоєння з операцією на присвоєння"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/ReplaceOperatorAssignmentWithAssignmentAction.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplaceOperatorAssignmentWithAssignmentCodeRefactoringProvider.cs:3
@@ -24445,7 +24162,7 @@ msgstr "Вилучити невикористану мітку"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/MemberHidesStaticFromOuterClassIssue.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/MemberHidesStaticFromOuterClassAnalyzer.cs:1
msgid "Member hides static member from outer class"
-msgstr ""
+msgstr "Член приховує статичного члена з зовнішнього класу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/MemberHidesStaticFromOuterClassIssue.cs:7
msgid "field"
@@ -24645,7 +24362,7 @@ msgstr "Вилучити зайву специфікацію типу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/ArrayCreationCanBeReplacedWithArrayInitializerIssue.cs:2
msgid "Array creation can be replaced with array initializer"
-msgstr ""
+msgstr "Створення масиву можна замінити ініціалізацією масиву"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/RedundanciesInCode/ArrayCreationCanBeReplacedWithArrayInitializerIssue.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/ArrayCreationCanBeReplacedWithArrayInitializerAnalyzer.cs:1
@@ -24686,17 +24403,18 @@ msgstr "Поле лише для читання не може бути ціль
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/ObjectCreationAsStatementIssue.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/ObjectCreationAsStatementAnalyzer.cs:1
msgid "Possible unassigned object created by 'new'"
-msgstr ""
+msgstr "Можливо, не присвоєно значення об'єкту, створеному за допомогою 'new'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/ObjectCreationAsStatementIssue.cs:3
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/ObjectCreationAsStatementAnalyzer.cs:1
msgid "Possible unassigned object created by 'new' expression"
msgstr ""
+"Можливо, не присвоєно значення об'єкту, створеному за допомогою виразу 'new'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/NotResolvedInTextIssue.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/NotResolvedInTextAnalyzer.cs:1
msgid "Cannot resolve symbol in text argument"
-msgstr ""
+msgstr "Не вдалось розібрати символ у текстовому аргументі"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/NotResolvedInTextIssue.cs:21
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/NotResolvedInTextIssue.cs:24
@@ -24793,6 +24511,8 @@ msgid ""
"Given expression is always of the provided type. Consider comparing with "
"'null' instead"
msgstr ""
+"Даний вираз завжди має вказаний тип. Можливо, варто натомість "
+"порівняти з 'null'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/PolymorphicFieldLikeEventInvocationIssue.cs:1
msgid "Invocation of polymorphic field event"
@@ -24807,13 +24527,13 @@ msgstr "Подія '{0}' може з'явитись лише ліворуч ві
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/CodeQuality/PolymorphicFieldLikeEventInvocationIssue.cs:3
msgid "Invocation of polymorphic field like event"
-msgstr ""
+msgstr "Виклик поліморфного поля як події"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/PossibleMistakenCallToGetTypeIssue.cs:1
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/PossibleMistakenCallToGetTypeIssue.cs:4
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/PossibleMistakenCallToGetTypeAnalyzer.cs:1
msgid "Possible mistaken call to 'object.GetType()'"
-msgstr ""
+msgstr "Можливо, помилковий виклик 'object.GetType()'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/PossibleMistakenCallToGetTypeIssue.cs:4
msgid "Remove call to 'object.GetType()'"
@@ -24832,9 +24552,8 @@ msgid "CS0618: Member is obsolete"
msgstr "CS0618: Член застарілий"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CompilerErrors/CS0618UsageOfObsoleteMemberIssue.cs:7
-#, fuzzy
msgid "'{0}' is obsolete: '{1}'"
-msgstr "'{0}' є застарілим"
+msgstr "'{0}' є застарілим: '{1}'"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CompilerErrors/CS0618UsageOfObsoleteMemberIssue.cs:7
msgid "'{0}' is obsolete"
@@ -24897,10 +24616,12 @@ msgid ""
"CS1729: The type '{0}' does not contain a constructor that takes '{1}' "
"arguments"
msgstr ""
+"CS1729: Тип '{0}' не містить конструктора, який отримує '{1}' "
+"аргументів"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/ParameterOnlyAssignedIssue.cs:1
msgid "Parameter is only assigned"
-msgstr ""
+msgstr "Параметру лише надано значення"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/ParameterOnlyAssignedIssue.cs:5
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/ParameterOnlyAssignedAnalyzer.cs:1
@@ -24916,7 +24637,7 @@ msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CallToObjectEqualsViaBaseIssue.cs:4
msgid "Change invocation to call Object.ReferenceEquals"
-msgstr ""
+msgstr "Замінити виклик на виклик Object.ReferenceEquals"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/ConstantConditionIssue.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/ConstantConditionAnalyzer.cs:1
@@ -24956,7 +24677,7 @@ msgstr "Тип має бути оголошений у просторі назв
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CastExpressionOfIncompatibleTypeIssue.cs:2
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CastExpressionOfIncompatibleTypeIssue.cs:9
msgid "Type cast expression of incompatible type"
-msgstr ""
+msgstr "Вказівка несумісного типу"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/CompilerErrors/ExpressionIsNeverOfProvidedTypeIssue.cs:2
msgid "CS0184:Given expression is never of the provided type"
@@ -24992,36 +24713,31 @@ msgstr "Вилучити недосяжний код"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Custom/UnreachableCodeIssue.cs:25
msgid "Comment unreachable code"
-msgstr ""
+msgstr "Закоментувати недосяжний код"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ReplaceWithSingleCallToMinIssue.cs:1
-#, fuzzy
msgid "Replace with single call to Min(...)"
-msgstr "Замінити одиничним викликом Any(...)"
+msgstr "Замінити одиничним викликом Min(...)"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ReplaceWithSingleCallToMaxIssue.cs:1
-#, fuzzy
msgid "Replace with single call to Max(...)"
-msgstr "Замінити одиничним викликом Last(...)"
+msgstr "Замінити одиничним викликом Max(...)"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ReplaceWithSingleCallToAverageIssue.cs:1
-#, fuzzy
msgid "Replace with single call to Average(...)"
-msgstr "Замінити одиничним викликом Any(...)"
+msgstr "Замінити одиничним викликом Average(...)"
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ReplaceWithSingleCallToAverageIssue.cs:8
msgid "Redundant Select() call with predicate followed by {0}()"
msgstr ""
#: ../external/nrefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ReplaceWithSingleCallToSumIssue.cs:1
-#, fuzzy
msgid "Replace with single call to Sum(...)"
-msgstr "Замінити одиничним викликом Count(...)"
+msgstr "Замінити одиничним викликом Sum(...)"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/AddNullCheckCodeRefactoringProvider.cs:13
-#, fuzzy
msgid "Add null check"
-msgstr "Додати перевірку, чи параметр - null"
+msgstr "Додати перевірку на null"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ContractRequiresNotNullCodeRefactoringProvider.cs:2
msgid "Add contract requiring parameter must not be null"
@@ -25029,12 +24745,11 @@ msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/AddCatchExceptionCodeRefactoringProvider.cs:3
msgid "To 'catch (Exception)'"
-msgstr ""
+msgstr "На 'catch (виняток)'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/AddExceptionDescriptionCodeRefactoringProvider.cs:4
-#, fuzzy
msgid "Add exception description"
-msgstr "Додати виняток до документації XML"
+msgstr "Додати опис винятку"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/AddNewFormatItemCodeRefactoringProvider.cs:4
#, fuzzy
@@ -25044,92 +24759,78 @@ msgstr "Запитувати _аргументи"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertAnonymousMethodToLambdaCodeRefactoringProvider.cs:3
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertLambdaStatementToExpressionCodeRefactoringProvider.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertMethodGroupToLambdaCodeRefactoringProvider.cs:7
-#, fuzzy
msgid "To lambda expression"
-msgstr "Перетворити на вираз лямбда-вираз"
+msgstr "На лямбда-вираз"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertCoalescingToConditionalExpressionCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Replace '??' operator with '?:' expression"
-msgstr "Замінити виразом з '?:'"
+msgstr "Замінити оператор '??' на вираз '?:'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertDecToHexCodeRefactoringProvider.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ConvertDecToHexCodeRefactoringProvider.cs:2
msgid "To hex"
-msgstr ""
+msgstr "На шістнадцяткове"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertEqualityOperatorToEqualsCodeRefactoringProvider.cs:1
-#, fuzzy
msgid "To 'Equals' call"
-msgstr "Використовувати 'Equals'"
+msgstr "На виклик 'Equals'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertEqualityOperatorToReferenceEqualsCodeRefactoringProvider.cs:3
msgid "To 'ReferenceEquals' call"
-msgstr ""
+msgstr "На виклик 'ReferenceEquals'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertEqualsToEqualityOperatorCodeRefactoringProvider.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertReferenceEqualsToEqualityOperatorCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To '=='"
-msgstr "Використовувати '=='"
+msgstr "На '=='"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertEqualsToEqualityOperatorCodeRefactoringProvider.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertReferenceEqualsToEqualityOperatorCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To '!='"
-msgstr "Використовувати '!='"
+msgstr "На '!='"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertExplicitToImplicitImplementationCodeRefactoringProvider.cs:9
-#, fuzzy
msgid "To implicit implementation"
-msgstr "Перетворити явну реалізацію на неявну"
+msgstr "На неявну реалізацію"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertForeachToForCodeRefactoringProvider.cs:4
-#, fuzzy
msgid "To 'for'"
-msgstr "'for'"
+msgstr "На 'for'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertHexToDecCodeRefactoringProvider.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ConvertHexToDecCodeRefactoringProvider.cs:2
msgid "To dec"
-msgstr ""
+msgstr "На десяткове"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertIfStatementToConditionalTernaryExpressionCodeRefactoringProvider.cs:11
-#, fuzzy
msgid "To '?:' expression"
-msgstr "Перетворити на вираз '?:'"
+msgstr "На вираз '?:'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertIfStatementToSwitchStatementCodeRefactoringProvider.cs:5
-#, fuzzy
msgid "To 'switch'"
-msgstr "'switch'"
+msgstr "На 'switch'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertImplicitToExplicitImplementationCodeRefactoringProvider.cs:7
-#, fuzzy
msgid "To explicit implementation"
-msgstr "Перетворити неявну реалізацію на явну"
+msgstr "На явну реалізацію"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertLambdaBodyExpressionToStatementCodeRefactoringProvider.cs:4
-#, fuzzy
msgid "To lambda statement"
-msgstr "Перетворити на інструкцію lambda"
+msgstr "На лямбда-вираз"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertLambdaToAnonymousMethodCodeRefactoringProvider.cs:3
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertMethodGroupToAnonymousMethodCodeRefactoringProvider.cs:7
-#, fuzzy
msgid "To anonymous method"
-msgstr "Анонімні методи"
+msgstr "На анонімний метод"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertSwitchToIfCodeRefactoringProvider.cs:4
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ConvertSelectCaseToIfCodeRefactoringProvider.cs:5
-#, fuzzy
msgid "To 'if'"
-msgstr "'if'"
+msgstr "На 'if'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/FlipOperatorOperandsCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Flip '{0}' operands"
-msgstr "Поміняти аргументи оператора '{0}'"
+msgstr "Поміняти операнди '{0}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/FlipRelationalOperatorArgumentsCodeRefactoringProvider.cs:3
#, fuzzy
@@ -25137,71 +24838,59 @@ msgid "Flip '{0}' operator to '{1}'"
msgstr "Поміняти аргументи оператора '{0}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/InsertAnonymousMethodSignatureCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "Insert signature"
-msgstr "Вставити підпис анонімного методу"
+msgstr "Вставити підпис"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/InvertIfCodeRefactoringProvider.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/InvertIfCodeRefactoringProvider.cs:1
-#, fuzzy
msgid "Invert 'if'"
-msgstr "Інвертувати if"
+msgstr "Інвертувати 'if'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/RemoveCatchExceptionCodeRefactoringProvider.cs:4
-#, fuzzy
msgid "To 'catch'"
-msgstr "'catch'"
+msgstr "На 'catch'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/InvokeAsStaticMethodCodeRefactoringProvider.cs:5
-#, fuzzy
msgid "To static invocation"
-msgstr "Порушення обмежень"
+msgstr "На статичний виклик"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/JoinLocalVariableDeclarationAndAssignmentCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "Join declaration and assignment"
-msgstr "Об'єднати оголошення та присвоєння локальних змінних"
+msgstr "Об'єднати оголошення та присвоєння"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/RemoveRegionEndRegionDirectivesCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Remove region/endregion directives"
-msgstr "Видалити зайві директиви using"
+msgstr "Видалити директиви region/endregion"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplaceAutoPropertyWithPropertyAndBackingFieldCodeRefactoringProvider.cs:3
msgid "To property with backing field"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertAutoPropertyToPropertyCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "To computed property"
-msgstr "Перетворити на автоматичну властивість"
+msgstr "На обчислювану властивість"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplacePropertyWithBackingFieldWithAutoPropertyCodeRefactoringProvider.cs:2
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplacePropertyWithBackingFieldWithAutoPropertyCodeRefactoringProvider.cs:7
-#, fuzzy
msgid "Convert to auto-property"
msgstr "Перетворити на автоматичну властивість"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplaceExplicitTypeWithVarCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To 'var'"
-msgstr "Використати 'var'"
+msgstr "На 'var'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ReplaceVarWithExplicitTypeCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "To explicit type"
-msgstr "Використати явний тип"
+msgstr "На явний тип"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/SplitIfWithAndConditionInTwoCodeRefactoringProvider.cs:5
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/SplitIfWithOrConditionInTwoCodeRefactoringProvider.cs:5
-#, fuzzy
msgid "Split into two 'if' statements"
-msgstr "Розділити інструкцію 'if'"
+msgstr "Розділити на дві інструкції 'if'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/SplitLocalVariableDeclarationAndAssignmentCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "Split declaration and assignment"
-msgstr "Розділити оголошення та присвоєння локальних змінних"
+msgstr "Розділити оголошення та присвоєння"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertHasFlagsToBitwiseFlagComparisonCodeRefactoringProvider.cs:3
#, fuzzy
@@ -25209,110 +24898,94 @@ msgid "To bitwise flag comparison"
msgstr "Використати порівняння за порядком"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertBitwiseFlagComparisonToHasFlagsCodeRefactoringProvider.cs:4
-#, fuzzy
msgid "To 'Enum.HasFlag'"
-msgstr "Замінити на 'Enum.HasFlag'"
+msgstr "На 'Enum.HasFlag'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/UseSystemStringEmptyCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "Use 'string.Empty'"
-msgstr "Використати string.Empty"
+msgstr "Використати 'string.Empty'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/UseSystemEnvironmentNewLineCodeRefactoringProvider.cs:2
msgid "Use 'System.Environment.NewLine'"
-msgstr ""
+msgstr "Використати 'System.Environment.NewLine'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertForToWhileCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "To 'while'"
-msgstr "'while'"
+msgstr "На 'while'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertDoWhileToWhileLoopCodeRefactoringProvider.cs:3
msgid "To 'while { ... }'"
-msgstr ""
+msgstr "На 'while { ... }'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplacePostfixExpressionWithAssignmentCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Replace '{0}++' with '{0} += 1'"
-msgstr "Замінити на '{0} += 1'"
+msgstr "Замінити '{0}++' на '{0} += 1'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplacePostfixExpressionWithAssignmentCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Replace '{0}--' with '{0} -= 1'"
-msgstr "Замінити на '{0} -= 1'"
+msgstr "Замінити '{0}--' на '{0} -= 1'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplaceWithOperatorAssignmentCodeRefactoringProvider.cs:1
-#, fuzzy
msgid "To '{0}='"
-msgstr "(з '{0}')"
+msgstr "На '{0}='"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplaceAssignmentWithPostfixExpressionCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To '{0}++'"
-msgstr "(з '{0}')"
+msgstr "На '{0}++'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ReplaceAssignmentWithPostfixExpressionCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To '{0}--'"
-msgstr "(з '{0}')"
+msgstr "На '{0}--'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertShiftToMultiplyCodeRefactoringProvider.cs:2
msgid "To '*'"
-msgstr ""
+msgstr "На '*'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertShiftToMultiplyCodeRefactoringProvider.cs:2
msgid "To '/'"
-msgstr ""
+msgstr "На '/'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertMultiplyToShiftCodeRefactoringProvider.cs:4
msgid "To '<<'"
-msgstr ""
+msgstr "На '<<'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertMultiplyToShiftCodeRefactoringProvider.cs:4
msgid "To '>>'"
-msgstr ""
+msgstr "На '>>'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Custom/ConvertWhileToDoWhileLoopCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "To 'do...while'"
-msgstr "Шаблон для циклу 'do...while'"
+msgstr "На 'do...while'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/PublicConstructorInAbstractClass.cs:1
-#, fuzzy
msgid "Constructor in abstract class should not be public"
-msgstr "Конструктор в абстрактному класі не може бути загальнодоступним"
+msgstr "Конструктор в абстрактному класі не може бути public"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeAny.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().Any()"
-msgstr "Замінити викликом OfType<T>().{0}()"
+msgstr "Замінити викликом OfType<T>().Any()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeAny.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().Any()'"
-msgstr "Замінити на OfType<T>().Any()"
+msgstr "Замінити на 'OfType<T>().Any()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/AdditionalOfTypeAnalyzer.cs:2
-#, fuzzy
msgid "Replace with call to OfType<T> (extended cases)"
-msgstr "Замінити на OfType<T> (extended)"
+msgstr "Замінити викликом OfType<T> (розширені випадки)"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/AdditionalOfTypeAnalyzer.cs:2
-#, fuzzy
msgid "Replace with 'OfType<T>'"
-msgstr "Замінити на OfType<T>"
+msgstr "Замінити на 'OfType<T>'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/CallToObjectEqualsViaBaseAnalyzer.cs:1
msgid "Finds potentially erroneous calls to Object.Equals"
-msgstr ""
+msgstr "Знаходить потенційно помилкові виклики Object.Equals"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/ConvertIfToAndExpressionAnalyzer.cs:1
-#, fuzzy
msgid "Convert 'if' to '&&' expression"
-msgstr "Перетворити 'if' на вираз '??'"
+msgstr "Перетворити 'if' на вираз '&&'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/ConvertIfToAndExpressionAnalyzer.cs:4
-#, fuzzy
msgid "Convert to '&&' expression"
msgstr "Перетворити на вираз '&&'"
@@ -25325,9 +24998,8 @@ msgid "Shows NotImplementedException throws in the quick task bar"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/NotImplementedExceptionAnalyzer.cs:1
-#, fuzzy
msgid "Not implemented"
-msgstr "Розваги"
+msgstr "Не реалізовано"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/RedundantAssignmentAnalyzer.cs:1
msgid ""
@@ -25412,7 +25084,7 @@ msgstr "Перетворити на інструкцію 'return'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/LocalVariableHidesMemberAnalyzer.cs:1
msgid "Local variable has the same name as a member and hides it"
-msgstr ""
+msgstr "Назва локальної змінної збігається з назвою члена і приховує його"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/LocalVariableHidesMemberAnalyzer.cs:1
#, fuzzy
@@ -25421,12 +25093,11 @@ msgstr "Локальна змінна '{0}' приховує поле '{1}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/LongLiteralEndingLowerLAnalyzer.cs:1
msgid "Lowercase 'l' is often confused with '1'"
-msgstr ""
+msgstr "Малу 'l' часто плутають з '1'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/MethodOverloadWithOptionalParameterAnalyzer.cs:1
-#, fuzzy
msgid "{0} with optional parameter is hidden by overload"
-msgstr "Метод з необов'язковим параметром прихований перевантаженням"
+msgstr "{0} з необов'язковим параметром прихований перевантаженням"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/NotResolvedInTextAnalyzer.cs:2
#, fuzzy
@@ -25438,23 +25109,27 @@ msgid ""
"Operator Is can be used instead of comparing object GetType() and instances "
"of System.Type object"
msgstr ""
+"Замість порівняння об'єкта GetType() з примірником об'єкта System.Type "
+"можна використати операцію Is"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/OptionalParameterHierarchyMismatchAnalyzer.cs:1
msgid ""
"The value of an optional parameter in a method does not match the base method"
msgstr ""
+"Значення необов'язкового параметра у методі не відповідає базовому методу"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/OptionalParameterHierarchyMismatchAnalyzer.cs:1
msgid "Optional parameter value {0} differs from base {1} '{2}'"
msgstr ""
+"Значення необов'язкового параметра {0} відрізняється від базового {1} '{2}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/OptionalParameterRefOutAnalyzer.cs:1
msgid "C# doesn't support optional 'ref' or 'out' parameters"
-msgstr ""
+msgstr "C# не підтримує необов'язкових параметрів 'ref' або 'out'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/ParameterHidesMemberAnalyzer.cs:1
msgid "Parameter has the same name as a member and hides it"
-msgstr ""
+msgstr "Назва параметра збігається з назвою члена і приховує його"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/PolymorphicFieldLikeEventInvocationAnalyzer.cs:1
msgid ""
@@ -25488,12 +25163,11 @@ msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/ValueParameterNotUsedAnalyzer.cs:5
msgid "add accessor"
-msgstr ""
+msgstr "метод доступу add"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/ValueParameterNotUsedAnalyzer.cs:5
-#, fuzzy
msgid "remove accessor"
-msgstr "Видалити дужки"
+msgstr "метод доступу remove"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CompilerWarnings/UnassignedReadonlyFieldAnalyzer.cs:1
#, fuzzy
@@ -25506,14 +25180,12 @@ msgid "Non public methods are not found by NUnit"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertIfStatementToNullCoalescingExpressionAnalyzer.cs:1
-#, fuzzy
msgid "Convert 'if' to '??'"
-msgstr "Перетворити 'if' на '?:'"
+msgstr "Перетворити 'if' на '??'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertNullableToShortFormAnalyzer.cs:1
-#, fuzzy
msgid "Convert 'Nullable<T>' to the short form 'T?'"
-msgstr "Перетворити 'Nullable<T>' на 'T?'"
+msgstr "Перетворити 'Nullable<T>' на коротку форму 'T?'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertNullableToShortFormAnalyzer.cs:1
#, fuzzy
@@ -25521,9 +25193,8 @@ msgid "Nullable type can be simplified"
msgstr "Тип можна спростити до '{0}?'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertToLambdaExpressionAnalyzer.cs:1
-#, fuzzy
msgid "Convert to lambda with expression"
-msgstr "Перетворити на вираз лямбда-вираз"
+msgstr "Перетворити на лямбда-вираз with"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/Opportunities/ConvertToStaticTypeAnalyzer.cs:1
msgid ""
@@ -25606,69 +25277,61 @@ msgid "Finds redundant null coalescing expressions such as expr ?? expr"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/ForStatementConditionIsTrueAnalyzer.cs:1
-#, fuzzy
msgid ""
"true is redundant as for statement condition, thus can be safely ommited"
-msgstr "'true' в якості умови є зайвим"
+msgstr "true в якості умови є зайвим, тому може бути безпечно усунуте"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantAnonymousTypePropertyNameAnalyzer.cs:1
msgid "The name can be inferred from the initializer expression"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantArgumentDefaultValueAnalyzer.cs:1
-#, fuzzy
msgid "Default argument value is redundant"
-msgstr "Значення аргументу зайве"
+msgstr "Стандартне значення аргументу зайве"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantArgumentDefaultValueAnalyzer.cs:1
-#, fuzzy
msgid "The parameter is optional with the same default value"
-msgstr "Вилучити стандартне значення параметра"
+msgstr "Параметр не обов'язковий і якщо не вказаний, набуває такого ж значення"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantBaseQualifierAnalyzer.cs:1
-#, fuzzy
msgid "'base.' is redundant and can safely be removed"
-msgstr "'base.' зайве і може бути безпечно вилучене."
+msgstr "'base.' зайве і може бути безпечно вилучене"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantBoolCompareAnalyzer.cs:1
-#, fuzzy
msgid "Comparison of a boolean value with 'true' or 'false' constant"
-msgstr "Порівняння з 'true' є зайвим"
+msgstr "Порівняння логічного значення з константою 'true' або 'false'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantBoolCompareAnalyzer.cs:1
-#, fuzzy
msgid "Comparison with '{0}' is redundant"
-msgstr "Порівняння з 'true' є зайвим"
+msgstr "Порівняння з '{0}' є зайвим"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantCaseLabelAnalyzer.cs:1
-#, fuzzy
msgid "'case' label is redundant"
-msgstr "Зайва інструкція 'unsafe'."
+msgstr "Зайва мітка 'case'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantCatchClauseAnalyzer.cs:1
-#, fuzzy
msgid "Catch clause with a single 'throw' statement is redundant"
-msgstr "Пункт 'catch' з одиничним виразом 'throw' є зайвим"
+msgstr "Пункт catch з одиничним виразом 'throw' є зайвим"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantCheckBeforeAssignmentAnalyzer.cs:1
msgid ""
"Check for inequality before assignment is redundant if (x != value) x = "
"value;"
msgstr ""
+"Перевірка не рівності перед присвоєнням є зайвою if (x != значення) x = "
+"значення;"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantComparisonWithNullAnalyzer.cs:1
msgid "When 'is' keyword is used, which implicitly check null"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantEnumerableCastCallAnalyzer.cs:1
-#, fuzzy
msgid "Redundant '{0}' call"
-msgstr "Видалити мітку 'case'"
+msgstr "Зайвий виклик '{0}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantExplicitArraySizeAnalyzer.cs:1
-#, fuzzy
msgid "Remove the redundant size indicator"
-msgstr "Вилучити зайвий підпис"
+msgstr "Вилучити зайвий індикатор size"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantExplicitNullableCreationAnalyzer.cs:1
#, fuzzy
@@ -25687,11 +25350,12 @@ msgid ""
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantObjectCreationArgumentListAnalyzer.cs:1
-#, fuzzy
msgid ""
"When object creation uses object or collection initializer, empty argument "
"list is redundant"
-msgstr "Порожній об'єкт або ініціалізатор колекції є зайвим"
+msgstr ""
+"Кори при створенні об'єкта використовується ініціалізатор об'єкта або "
+"колекції, порожній список аргументів є зайвим"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantToStringCallAnalyzer.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantToStringCallAnalyzer.cs:2
@@ -25702,9 +25366,8 @@ msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantToStringCallAnalyzer.cs:1
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantToStringCallAnalyzer.cs:2
-#, fuzzy
msgid "Redundant 'ToString()' call"
-msgstr "Зайвий виклик ToString()"
+msgstr "Зайвий виклик 'ToString()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantUnsafeContextAnalyzer.cs:1
msgid ""
@@ -25713,25 +25376,22 @@ msgid ""
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/RedundantUnsafeContextAnalyzer.cs:1
-#, fuzzy
msgid "'unsafe' modifier is redundant"
-msgstr "Зайвий модифікатор 'unsafe'."
+msgstr "Зайвий модифікатор 'unsafe'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/RedundanciesInCode/UnusedAnonymousMethodSignatureAnalyzer.cs:1
msgid "Detects when no delegate parameter is used in the anonymous method body"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseMethodAnyAnalyzer.cs:1
-#, fuzzy
msgid "Replace usages of 'Count()' with call to 'Any()'"
-msgstr "Замінити викликом 'Any()'"
+msgstr "Замінити використання 'Count()' викликом 'Any()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseMethodAnyAnalyzer.cs:1
msgid "Use '{0}' for increased performance"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/UseIsOperatorAnalyzer.cs:1
-#, fuzzy
msgid "'is' operator can be used"
msgstr "Можна використати оператор 'is'"
@@ -25740,36 +25400,32 @@ msgid "Warns when a culture-aware 'StartsWith' call is used by default."
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringStartsWithIsCultureSpecificAnalyzer.cs:1
-#, fuzzy
msgid "'StartsWith' is culture-aware and missing a StringComparison argument"
-msgstr "'{0}' є культурозалежним і пропущено аргумент StringComparison"
+msgstr "'StartsWith' є культурозалежним і пропущено аргумент StringComparison"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringLastIndexOfIsCultureSpecificAnalyzer.cs:1
msgid "Warns when a culture-aware 'LastIndexOf' call is used by default."
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringLastIndexOfIsCultureSpecificAnalyzer.cs:1
-#, fuzzy
msgid "'LastIndexOf' is culture-aware and missing a StringComparison argument"
-msgstr "'{0}' є культурозалежним і пропущено аргумент StringComparison"
+msgstr "'LastIndexOf' є культурозалежним і пропущено аргумент StringComparison"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringIndexOfIsCultureSpecificAnalyzer.cs:1
msgid "Warns when a culture-aware 'IndexOf' call is used by default."
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringIndexOfIsCultureSpecificAnalyzer.cs:1
-#, fuzzy
msgid "'IndexOf' is culture-aware and missing a StringComparison argument"
-msgstr "'{0}' є культурозалежним і пропущено аргумент StringComparison"
+msgstr "'IndexOf' є культурозалежним і пропущено аргумент StringComparison"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringEndsWithIsCultureSpecificAnalyzer.cs:1
msgid "Warns when a culture-aware 'EndsWith' call is used by default."
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringEndsWithIsCultureSpecificAnalyzer.cs:1
-#, fuzzy
msgid "'EndsWith' is culture-aware and missing a StringComparison argument"
-msgstr "'{0}' є культурозалежним і пропущено аргумент StringComparison"
+msgstr "'EndsWith' є культурозалежним і пропущено аргумент StringComparison"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/StringCompareToIsCultureSpecificAnalyzer.cs:1
msgid "Warns when a culture-aware 'string.CompareTo' call is used by default"
@@ -25780,204 +25436,172 @@ msgid "Warns when a culture-aware 'Compare' call is used by default"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/SimplifyConditionalTernaryExpressionAnalyzer.cs:1
-#, fuzzy
msgid "Conditional expression can be simplified"
-msgstr "Не задано вираз умови"
+msgstr "Вираз умови можна спростити"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithStringIsNullOrEmptyAnalyzer.cs:2
msgid "Uses shorter string.IsNullOrEmpty call instead of a longer condition"
-msgstr ""
+msgstr "Використати коротший виклик string.IsNullOrEmpty замість довшої умови"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithStringIsNullOrEmptyAnalyzer.cs:2
-#, fuzzy
msgid "Expression can be replaced with '{0}'"
-msgstr "Вираз можна замінити на string.IsNullOrEmpty"
+msgstr "Вираз можна замінити на '{0}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToSingleOrDefaultAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by SingleOrDefault()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToSingleOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'SingleOrDefault()'"
-msgstr "Замінити одиничним викликом SingleOrDefault(...)"
+msgstr "Замінити одиничним викликом 'SingleOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToSingleAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by Single()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToSingleAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'Single()'"
-msgstr "Замінити одиничним викликом Single(...)"
+msgstr "Замінити одиничним викликом 'Single()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLongCountAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by LongCount()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLongCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'LongCount()'"
-msgstr "Замінити одиничним викликом LongCount(...)"
+msgstr "Замінити одиничним викликом 'LongCount()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLastOrDefaultAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by LastOrDefault()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLastOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'LastOrDefault()'"
-msgstr "Замінити одиничним викликом LastOrDefault(...)"
+msgstr "Замінити одиничним викликом 'LastOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLastAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by Last()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToLastAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'Last()'"
-msgstr "Замінити одиничним викликом Last(...)"
+msgstr "Замінити одиничним викликом 'Last()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToFirstOrDefaultAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by FirstOrDefault()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToFirstOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'FirstOrDefault()'"
-msgstr "Замінити одиничним викликом FirstOrDefault(...)"
+msgstr "Замінити одиничним викликом 'FirstOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToFirstAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by First()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToFirstAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'First()'"
-msgstr "Замінити одиничним викликом First(...)"
+msgstr "Замінити одиничним викликом 'First()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToCountAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by Count()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'Count()'"
-msgstr "Замінити одиничним викликом Count(...)"
+msgstr "Замінити одиничним викликом 'Count()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToAnyAnalyzer.cs:1
msgid "Redundant Where() call with predicate followed by Any()"
msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithSingleCallToAnyAnalyzer.cs:1
-#, fuzzy
msgid "Replace with single call to 'Any()'"
-msgstr "Замінити одиничним викликом Any(...)"
+msgstr "Замінити одиничним викликом 'Any()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeWhereAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().Where()"
-msgstr "Замінити викликом OfType<T>().{0}()"
+msgstr "Замінити викликом OfType<T>().Where()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeWhereAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().Where()'"
-msgstr "Замінити на OfType<T>().Where()"
+msgstr "Замінити на 'OfType<T>().Where()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeSingleOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().SingleOrDefault()"
-msgstr "Замінити на OfType<T>().SingleOrDefault()"
+msgstr "Замінити викликом OfType<T>().SingleOrDefault()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeSingleOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().SingleOrDefault()'"
-msgstr "Замінити на OfType<T>().SingleOrDefault()"
+msgstr "Замінити на 'OfType<T>().SingleOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeSingleAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().Single()"
-msgstr "Замінити на OfType<T>().Single()"
+msgstr "Замінити викликом OfType<T>().Single()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeSingleAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().Single()'"
-msgstr "Замінити на OfType<T>().Single()"
+msgstr "Замінити на 'OfType<T>().Single()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLongCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().LongCount()"
-msgstr "Замінити на OfType<T>().LongCount()"
+msgstr "Замінити викликом OfType<T>().LongCount()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLongCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().LongCount()'"
-msgstr "Замінити на OfType<T>().LongCount()"
+msgstr "Замінити на 'OfType<T>().LongCount()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLastOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().LastOrDefault()"
-msgstr "Замінити на OfType<T>().LastOrDefault()"
+msgstr "Замінити викликом OfType<T>().LastOrDefault()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLastOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().LastOrDefault()'"
-msgstr "Замінити на OfType<T>().LastOrDefault()"
+msgstr "Замінити на 'OfType<T>().LastOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLastAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().Last()"
-msgstr "Замінити викликом OfType<T>().{0}()"
+msgstr "Замінити викликом OfType<T>().Last()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeLastAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().Last()'"
-msgstr "Замінити на OfType<T>().Last()"
+msgstr "Замінити на 'OfType<T>().Last()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>()'"
-msgstr "Замінити на OfType<T>"
+msgstr "Замінити на 'OfType<T>()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeFirstOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().FirstOrDefault()"
-msgstr "Замінити на OfType<T>().FirstOrDefault()"
+msgstr "Замінити викликом OfType<T>().FirstOrDefault()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeFirstOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().FirstOrDefault()'"
-msgstr "Замінити на OfType<T>().FirstOrDefault()"
+msgstr "Замінити на 'OfType<T>().FirstOrDefault()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeFirstAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().First()"
-msgstr "Замінити викликом OfType<T>().{0}()"
+msgstr "Замінити викликом OfType<T>().First()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeFirstAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().First()'"
-msgstr "Замінити на OfType<T>().First()"
+msgstr "Замінити на 'OfType<T>().First()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to OfType<T>().Count()"
-msgstr "Замінити викликом OfType<T>().{0}()"
+msgstr "Замінити викликом OfType<T>().Count()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithOfTypeCountAnalyzer.cs:1
-#, fuzzy
msgid "Replace with 'OfType<T>().Count()'"
-msgstr "Замінити на OfType<T>().Count()"
+msgstr "Замінити на 'OfType<T>().Count()'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithLastOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to LastOrDefault<T>()"
-msgstr "Замінити на LastOrDefault<T>()"
+msgstr "Замінити викликом LastOrDefault<T>()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ReplaceWithFirstOrDefaultAnalyzer.cs:1
-#, fuzzy
msgid "Replace with call to FirstOrDefault<T>()"
-msgstr "Замінити на FirstOrDefault<T>()"
+msgstr "Замінити викликом FirstOrDefault<T>()"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ParameterCanBeDeclaredWithBaseTypeAnalyzer.cs:4
#, fuzzy
@@ -25985,14 +25609,12 @@ msgid "Finds parameters that can be demoted to a base class"
msgstr "Параметр можна оголосити з базовим типом"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ConvertIfToOrExpressionAnalyzer.cs:1
-#, fuzzy
msgid "Convert 'if' to '||' expression"
-msgstr "Перетворити 'if' на вираз '??'"
+msgstr "Перетворити 'if' на вираз '||'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/ConvertIfDoToWhileAnalyzer.cs:1
-#, fuzzy
msgid "Convert 'if-do-while' to 'while' statement"
-msgstr "Перетворити на інструкцію 'switch'"
+msgstr "Перетворити 'if-do-while' на інструкцію 'while'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/AccessToStaticMemberViaDerivedTypeAnalyzer.cs:1
msgid "Suggests using the class declaring a static function when calling it"
@@ -26001,25 +25623,23 @@ msgstr ""
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertStatementBodyToExpressionBodyCodeRefactoringProvider.cs:8
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertStatementBodyToExpressionBodyCodeRefactoringProvider.cs:9
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertStatementBodyToExpressionBodyCodeRefactoringProvider.cs:10
-#, fuzzy
msgid "To expression body"
-msgstr "Вилучити вираз"
+msgstr "До тіла виразу"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertExpressionBodyToStatementBodyCodeRefactoringProvider.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/ConvertExpressionBodyToStatementBodyCodeRefactoringProvider.cs:9
-#, fuzzy
msgid "To statement body"
-msgstr "Порожнє тіло керувальної інструкції"
+msgstr "До тіла інструкції"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/CheckArrayIndexValueCodeRefactoringProvider.cs:4
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/CheckStringIndexValueCodeRefactoringProvider.cs:4
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/CheckStringBuilderIndexValueCodeRefactoringProvider.cs:4
msgid "Check 'if ({0}.Length > {1})'"
-msgstr ""
+msgstr "Перевіряти 'if ({0}.Length > {1})'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/CheckCollectionIndexValueCodeRefactoringProvider.cs:4
msgid "Check 'if ({0}.Count > {1})'"
-msgstr ""
+msgstr "Перевіряти 'if ({0}.Count > {1})'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/CheckDictionaryKeyValueCodeRefactoringProvider.cs:3
msgid "Use 'if ({0}.TryGetValue({1}, out val))'"
@@ -26032,42 +25652,36 @@ msgstr "Обернути цикл 'for'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/InitializeFieldFromConstructorParameterCodeRefactoringProvider.cs:3
msgid "Initialize field from parameter"
-msgstr ""
+msgstr "Ініціалізувати поле з параметра"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeRefactorings/Synced/InitializeAutoPropertyFromConstructorParameterCodeRefactoringProvider.cs:3
msgid "Initialize auto-property from parameter"
-msgstr ""
+msgstr "Ініціалізувати автоматичну властивість з параметра"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/CS1520MethodMustHaveAReturnTypeCodeFixProvider.cs:3
-#, fuzzy
msgid "Fix constructor"
-msgstr "Конструктор"
+msgstr "Виправити конструктор"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/CS0108UseNewKeywordIfHidingIntendedCodeFixProvider.cs:5
-#, fuzzy
msgid "Add 'new' modifier"
-msgstr "Додати модифікатор 'params'"
+msgstr "Додати модифікатор 'new'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/ReturnMustNotBeFollowedByAnyExpressionCodeFixProvider.cs:6
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/InvalidConversionCodeFixProvider.cs:11
-#, fuzzy
msgid "Change return type of method"
-msgstr "Змінити тип, що повертається методом."
+msgstr "Змінити тип, що повертається методом"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/CS0152DuplicateCaseLabelValueCodeFixProvider.cs:5
-#, fuzzy
msgid "Remove 'case {0}' switch section"
-msgstr "Вилучити 'case {0}'"
+msgstr "Вилучити секцію 'case {0}' зі switch"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/CS0152DuplicateCaseLabelValueCodeFixProvider.cs:5
-#, fuzzy
msgid "Remove 'case {0}' label"
-msgstr "Вилучити 'case {0}'"
+msgstr "Вилучити мітку 'case {0}'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/CodeFixes/Custom/CS0162UnreachableCodeDetectedCodeFixProvider.cs:6
-#, fuzzy
msgid "Remove redundant code"
-msgstr "Прибрати зайву перевірку"
+msgstr "Прибрати зайвий код"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/CodeQuality/NotResolvedInTextIssueCodeFixProvider.cs:6
#, fuzzy
@@ -26075,21 +25689,20 @@ msgid "Swap parameter"
msgstr "Параметр-тип"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Synced/PracticesAndImprovements/FieldCanBeMadeReadOnlyCodeFixProvider.cs:3
-#, fuzzy
msgid "To 'readonly'"
-msgstr "На лише для читання"
+msgstr "На 'readonly'"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/NameOfSuggestionAnalyzer.cs:1
msgid "Suggest the usage of the nameof operator"
-msgstr ""
+msgstr "Запропонувати використати оператор nameof"
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/NameOfSuggestionAnalyzer.cs:1
msgid "Use 'nameof({0})' expression instead."
-msgstr ""
+msgstr "Використати натомість 'nameof({0})'."
#: ../external/RefactoringEssentials/RefactoringEssentials/CSharp/Diagnostics/Custom/NameOfSuggestionCodeFixProvider.cs:4
msgid "To 'nameof({0})'"
-msgstr ""
+msgstr "На 'nameof({0})'"
#: ../external/RefactoringEssentials/RefactoringEssentials/Samples/CSharp/SampleAnalyzer.cs:2
msgid "Sample analyzer: Class name should not have a 'C' prefix."
@@ -26116,45 +25729,40 @@ msgid "Import static class with using"
msgstr "Частковий (partial) клас з однією частиною"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/CheckIfParameterIsNothingCodeRefactoringProvider.cs:2
-#, fuzzy
msgid "Add 'Is Nothing' check for parameter"
-msgstr "Додати перевірку, чи параметр - null"
+msgstr "Додати до параметра перевірку 'Is Nothing'"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ConvertIfStatementToSelectCaseStatementCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "To 'Select Case'"
-msgstr "Виберіть зображення"
+msgstr "На 'Select Case'"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ConvertToCustomEventCodeRefactoringProvider.cs:6
-#, fuzzy
msgid "Convert to custom event"
-msgstr "Перетворити на константу"
+msgstr "Перетворити на власну подію"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/CheckDictionaryKeyValueCodeRefactoringProvider.cs:5
msgid "Check 'If {0}.TryGetValue({1}, val)'"
-msgstr ""
+msgstr "Перевіряти 'If {0}.TryGetValue({1}, val)'"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ReplaceDirectCastWithSafeCastCodeRefactoringProvider.cs:1
-#, fuzzy
msgid "Convert cast to 'TryCast'"
-msgstr "Перетворити на 'switch'"
+msgstr "Перетворити виклик на 'TryCast'"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/CodeRefactorings/ReplaceSafeCastWithDirectCastCodeRefactoringProvider.cs:3
-#, fuzzy
msgid "Convert 'TryCast' to 'DirectCast'"
-msgstr "Перетворити 'switch' на 'if'"
+msgstr "Перетворити 'TryCast' на 'DirectCast'"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/Diagnostics/Custom/NameOfSuggestionAnalyzer.cs:1
msgid "Suggest the usage of the NameOf operator"
-msgstr ""
+msgstr "Запропонувати використати оператор NameOf"
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/Diagnostics/Custom/NameOfSuggestionAnalyzer.cs:1
msgid "Use 'NameOf({0})' expression instead."
-msgstr ""
+msgstr "Використати натомість вираз 'NameOf({0})'."
#: ../external/RefactoringEssentials/RefactoringEssentials/VB/Diagnostics/Custom/NameOfSuggestionCodeFixProvider.cs:4
msgid "To 'NameOf({0})'"
-msgstr ""
+msgstr "На 'NameOf({0})'"
#: ../src/tools/mdmonitor/gtk-gui/Mono.Instrumentation.Monitor.InstrumentationViewerDialog.cs:2
msgid "C_onnect"
@@ -26178,11 +25786,11 @@ msgstr ""
#: ../src/tools/mdmonitor/gtk-gui/Mono.Instrumentation.Monitor.NewProfile.cs:1
msgid "New View"
-msgstr ""
+msgstr "Новий перегляд"
#: ../src/tools/mdmonitor/gtk-gui/Mono.Instrumentation.Monitor.NewProfile.cs:1
msgid "View Name:"
-msgstr ""
+msgstr "Назва перегляду:"
#: ../src/tools/mdmonitor/gtk-gui/Mono.Instrumentation.Monitor.CounterSelectorDialog.cs:2
msgid "Select Counter"
diff --git a/main/src/addins/AspNet/Commands/AddViewDialog.cs b/main/src/addins/AspNet/Commands/AddViewDialog.cs
index 44bc8e2c06..4f107b31f5 100644
--- a/main/src/addins/AspNet/Commands/AddViewDialog.cs
+++ b/main/src/addins/AspNet/Commands/AddViewDialog.cs
@@ -27,6 +27,7 @@
using System;
using System.IO;
using System.Collections.Generic;
+using System.Threading.Tasks;
using PP = System.IO.Path;
using Gtk;
@@ -281,12 +282,13 @@ namespace MonoDevelop.AspNet.Commands
Validate ();
}
- protected void UpdateTypePanelSensitivity (object sender, EventArgs e)
+ protected async void UpdateTypePanelSensitivity (object sender, EventArgs e)
{
bool enabled = typePanel.Sensitive = stronglyTypedCheck.Active;
if (enabled && classDataProvider == null) {
- classDataProvider = new TypeDataProvider (project);
+ classDataProvider = new TypeDataProvider ();
+ await classDataProvider.GetTypes (project);
dataClassStore = new ListStore (typeof (string));
foreach (var item in classDataProvider.TypeNamesList)
dataClassStore.AppendValues (item);
@@ -351,7 +353,7 @@ namespace MonoDevelop.AspNet.Commands
}
}
- protected virtual void MasterChanged (object sender, EventArgs e)
+ protected virtual async void MasterChanged (object sender, EventArgs e)
{
if (IsPartialView || !HasMaster)
return;
@@ -367,7 +369,7 @@ namespace MonoDevelop.AspNet.Commands
if (!File.Exists (realPath))
return;
- var pd = TypeSystemService.ParseFile (project, realPath).Result as WebFormsParsedDocument;
+ var pd = await TypeSystemService.ParseFile (project, realPath) as WebFormsParsedDocument;
if (pd != null) {
try {
@@ -472,12 +474,12 @@ namespace MonoDevelop.AspNet.Commands
class TypeDataProvider
{
public List<INamedTypeSymbol> TypesList { get; private set; }
- public List<string> TypeNamesList { get; private set; }
-
- public TypeDataProvider (MonoDevelop.Projects.DotNetProject project)
+ public List<string> TypeNamesList { get; private set; }
+
+ public async Task GetTypes (MonoDevelop.Projects.DotNetProject project)
{
TypeNamesList = new List<string> ();
- var ctx = TypeSystemService.GetCompilationAsync (project).Result;
+ var ctx = await TypeSystemService.GetCompilationAsync (project);
TypesList = new List<INamedTypeSymbol> (ctx.GetAllTypesInMainAssembly ());
foreach (var typeDef in TypesList) {
TypeNamesList.Add (Ambience.EscapeText (typeDef.ToDisplayString (SymbolDisplayFormat.CSharpErrorMessageFormat)));
diff --git a/main/src/addins/AspNet/Commands/GoToControllerCommandHandler.cs b/main/src/addins/AspNet/Commands/GoToControllerCommandHandler.cs
index 252a97bb27..2d5c091f3f 100644
--- a/main/src/addins/AspNet/Commands/GoToControllerCommandHandler.cs
+++ b/main/src/addins/AspNet/Commands/GoToControllerCommandHandler.cs
@@ -1,38 +1,40 @@
-//
-// GoToControllerCommandHandler.cs
-//
-// Author:
-// Piotr Dowgiallo <sparekd@gmail.com>
-//
-// Copyright (c) 2012 Piotr Dowgiallo
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
+//
+// GoToControllerCommandHandler.cs
+//
+// Author:
+// Piotr Dowgiallo <sparekd@gmail.com>
+//
+// Copyright (c) 2012 Piotr Dowgiallo
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
using System;
using System.Linq;
+using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using MonoDevelop.AspNet.Projects;
using MonoDevelop.Components.Commands;
using MonoDevelop.Core;
using MonoDevelop.Ide;
using MonoDevelop.Ide.TypeSystem;
-
+using MonoDevelop.Refactoring;
+
namespace MonoDevelop.AspNet.Commands
{
class GoToControllerCommandHandler : CommandHandler
@@ -54,21 +56,21 @@ namespace MonoDevelop.AspNet.Commands
info.Enabled = info.Visible = false;
}
- protected override void Run ()
+ protected override async void Run ()
{
var doc = IdeApp.Workbench.ActiveDocument;
var name = doc.FileName.ParentDirectory.FileName;
- var controller = FindController (doc.Project, name);
+ var controller = await FindController (doc.Project, name);
if (controller != null)
- IdeApp.ProjectOperations.JumpToDeclaration (controller, doc.Project);
+ await RefactoringService.RoslynJumpToDeclaration (controller, doc.Project);
else
MessageService.ShowError ("Matching controller cannot be found.");
}
- INamedTypeSymbol FindController (MonoDevelop.Projects.Project project, string name)
+ async Task<INamedTypeSymbol> FindController (MonoDevelop.Projects.Project project, string name)
{
- var compilation = TypeSystemService.GetCompilationAsync (project).Result;
+ var compilation = await TypeSystemService.GetCompilationAsync (project);
if (compilation == null)
return null;
diff --git a/main/src/addins/AspNet/Projects/AspNetProjectTemplateWizardPage.cs b/main/src/addins/AspNet/Projects/AspNetProjectTemplateWizardPage.cs
index b6a04bbc67..c410d543ea 100644
--- a/main/src/addins/AspNet/Projects/AspNetProjectTemplateWizardPage.cs
+++ b/main/src/addins/AspNet/Projects/AspNetProjectTemplateWizardPage.cs
@@ -119,7 +119,7 @@ namespace MonoDevelop.AspNet.Projects
get { return title; }
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return view ?? (view = new GtkAspNetProjectTemplateWizardPageWidget (this));
}
diff --git a/main/src/addins/AspNet/Razor/IRazorCompletionBuilder.cs b/main/src/addins/AspNet/Razor/IRazorCompletionBuilder.cs
index c74de5edaf..2beed8acba 100644
--- a/main/src/addins/AspNet/Razor/IRazorCompletionBuilder.cs
+++ b/main/src/addins/AspNet/Razor/IRazorCompletionBuilder.cs
@@ -46,7 +46,7 @@ namespace MonoDevelop.AspNet.Razor
Task<MonoDevelop.Ide.CodeCompletion.ParameterHintingResult> HandleParameterCompletion (TextEditor editor, DocumentContext context, CodeCompletionContext completionContext,
UnderlyingDocumentInfo docInfo, char completionChar);
// bool GetParameterCompletionCommandOffset (TextEditor editor, DocumentContext context, UnderlyingDocumentInfo docInfo, out int cpos);
- int GetCurrentParameterIndex (TextEditor editor, DocumentContext context, UnderlyingDocumentInfo docInfo, int startOffset);
+ Task<int> GetCurrentParameterIndex (TextEditor editor, DocumentContext context, UnderlyingDocumentInfo docInfo, int startOffset);
}
public class UnderlyingDocument : Document
diff --git a/main/src/addins/AspNet/Razor/RazorCSharpEditorExtension.cs b/main/src/addins/AspNet/Razor/RazorCSharpEditorExtension.cs
index adac098d7a..1fc3994145 100644
--- a/main/src/addins/AspNet/Razor/RazorCSharpEditorExtension.cs
+++ b/main/src/addins/AspNet/Razor/RazorCSharpEditorExtension.cs
@@ -567,14 +567,13 @@ namespace MonoDevelop.AspNet.Razor
return base.GetParameterCompletionCommandOffset (out cpos);
}*/
-
- public override int GetCurrentParameterIndex (int startOffset)
+ public override Task<int> GetCurrentParameterIndex (int startOffset, CancellationToken token)
{
if (hiddenInfo != null && isInCSharpContext) {
return completionBuilder.GetCurrentParameterIndex (defaultEditor, defaultDocumentContext, hiddenInfo, startOffset);
}
- return base.GetCurrentParameterIndex (startOffset);
+ return base.GetCurrentParameterIndex (startOffset, token);
}
public override Task<MonoDevelop.Ide.CodeCompletion.ParameterHintingResult> HandleParameterCompletionAsync (
@@ -585,7 +584,7 @@ namespace MonoDevelop.AspNet.Razor
hiddenInfo, completionChar);
}
- return base.HandleParameterCompletionAsync (completionContext, completionChar);
+ return base.HandleParameterCompletionAsync (completionContext, completionChar, token);
}
#endregion
diff --git a/main/src/addins/CSharpBinding/AspNet/RazorCSharpCompletionBuilder.cs b/main/src/addins/CSharpBinding/AspNet/RazorCSharpCompletionBuilder.cs
index ae5abf7433..3f95198852 100644
--- a/main/src/addins/CSharpBinding/AspNet/RazorCSharpCompletionBuilder.cs
+++ b/main/src/addins/CSharpBinding/AspNet/RazorCSharpCompletionBuilder.cs
@@ -105,11 +105,11 @@ namespace MonoDevelop.CSharp.Completion
// return completion.GetParameterCompletionCommandOffset (out cpos);
// }
- public int GetCurrentParameterIndex (MonoDevelop.Ide.Editor.TextEditor editor, DocumentContext context, UnderlyingDocumentInfo docInfo, int startOffset)
+ public Task<int> GetCurrentParameterIndex (MonoDevelop.Ide.Editor.TextEditor editor, DocumentContext context, UnderlyingDocumentInfo docInfo, int startOffset)
{
CodeCompletionContext ccc;
var completion = CreateCompletionAndUpdate (editor, context, docInfo, out ccc);
- return completion.GetCurrentParameterIndex (startOffset);
+ return completion.GetCurrentParameterIndex (startOffset, default(CancellationToken));
}
}
diff --git a/main/src/addins/CSharpBinding/CSharpBinding.addin.xml b/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
index 3f584b9f69..1af06cda14 100644
--- a/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
+++ b/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
@@ -296,4 +296,17 @@
<Extension path="/MonoDevelop/Ide/SearchCategories">
<Class class="MonoDevelop.CSharp.ProjectSearchCategory" />
</Extension>
+
+ <Extension path = "/MonoDevelop/Refactoring/FindReferencesProvider">
+ <Class class="MonoDevelop.CSharp.Refactoring.CSharpFindReferencesProvider" />
+ </Extension>
+
+ <Extension path = "/MonoDevelop/Refactoring/JumpToDeclarationHandler">
+ <Class class="MonoDevelop.CSharp.Refactoring.CSharpJumpToDeclarationHandler" />
+ </Extension>
+
+ <Extension path = "/MonoDevelop/NUnit/NUnitSourceCodeLocationFinder">
+ <Class class="MonoDevelop.CSharp.UnitTests.CSharpNUnitSourceCodeLocationFinder" />
+ </Extension>
+
</ExtensionModel> \ No newline at end of file
diff --git a/main/src/addins/CSharpBinding/CSharpBinding.csproj b/main/src/addins/CSharpBinding/CSharpBinding.csproj
index 41c4e4b5cd..191454a3cf 100644
--- a/main/src/addins/CSharpBinding/CSharpBinding.csproj
+++ b/main/src/addins/CSharpBinding/CSharpBinding.csproj
@@ -794,6 +794,9 @@
<Compile Include="Util\AccessibilityUtilities.cs" />
<Compile Include="Util\Glyph.cs" />
<Compile Include="MonoDevelop.CSharp.Features\Completion\ContextHandler\RegexContextHandler.cs" />
+ <Compile Include="MonoDevelop.CSharp.Refactoring\CSharpFindReferencesProvider.cs" />
+ <Compile Include="MonoDevelop.CSharp.Refactoring\CSharpJumpToDeclarationHandler.cs" />
+ <Compile Include="MonoDevelop.CSharp.UnitTests\CSharpNUnitSourceCodeLocationFinder.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs
index 1d6bb95822..0d1a5c6a68 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.cs
@@ -48,6 +48,8 @@ namespace MonoDevelop.CSharp.CodeRefactorings.InlineTemporary
if (model.IsFromGeneratedCode (cancellationToken))
return;
var root = await document.GetCSharpSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
+ if (textSpan.Start >= root.FullSpan.Length)
+ return;
var token = root.FindToken(textSpan.Start);
if (!token.Span.Contains(textSpan))
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynSymbolCompletionData.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynSymbolCompletionData.cs
index 9e7e51ec2a..6f23bd387a 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynSymbolCompletionData.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynSymbolCompletionData.cs
@@ -113,11 +113,6 @@ namespace MonoDevelop.CSharp.Completion
public static Task<TooltipInformation> CreateTooltipInformation (CancellationToken ctoken, MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext ctx, ISymbol entity, bool smartWrap, bool createFooter = false, SemanticModel model = null)
{
- if (ctx != null) {
- if (ctx.ParsedDocument == null || ctx.AnalysisDocument == null)
- LoggingService.LogError ("Signature markup creator created with invalid context." + Environment.NewLine + Environment.StackTrace);
- }
-
var tooltipInfo = new TooltipInformation ();
// if (resolver == null)
// resolver = file != null ? file.GetResolver (compilation, textEditorData.Caret.Location) : new CSharpResolver (compilation);
@@ -372,13 +367,16 @@ namespace MonoDevelop.CSharp.Completion
static bool HasNonMethodMembersWithSameName (ISymbol member)
{
var method = member as IMethodSymbol;
- if (method != null && method.MethodKind == MethodKind.Constructor)
- return false;
- if (member.ContainingType == null)
+ if (method == null)
+ return true;
+ if (method == null || method.MethodKind == MethodKind.Constructor)
return false;
- return member.ContainingType
- .GetMembers ()
- .Any (e => e.Kind != SymbolKind.Method && e.Name == member.Name);
+ var type = method.ReceiverType ?? method.ContainingType;
+ foreach (var m in type.GetMembers ().Where (m => m.Kind != SymbolKind.Method)) {
+ if (m.Name == member.Name)
+ return true;
+ }
+ return false;
}
static bool RequireGenerics (IMethodSymbol method)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
index 7aa90ca04e..bd00f01024 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
@@ -388,7 +388,7 @@ namespace MonoDevelop.CSharp.Formatting
{
}");
- AddOption (spacingOptions, category, "SpaceWithinMethodDeclarationParenthesis", GettextCatalog.GetString ("Insert space withing argument list parentheses"),
+ AddOption (spacingOptions, category, "SpaceWithinMethodDeclarationParenthesis", GettextCatalog.GetString ("Insert space within argument list parentheses"),
@"void Example(int i, int j)
{
}");
@@ -401,7 +401,7 @@ namespace MonoDevelop.CSharp.Formatting
{
Test();
}");
- AddOption (spacingOptions, category, "SpaceWithinMethodCallParentheses", GettextCatalog.GetString ("Insert space withing argument list parentheses"), @"void Example()
+ AddOption (spacingOptions, category, "SpaceWithinMethodCallParentheses", GettextCatalog.GetString ("Insert space within argument list parentheses"), @"void Example()
{
Test(1, 2);
}");
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs
index 3331393f78..049c9906fd 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs
@@ -76,7 +76,6 @@ namespace MonoDevelop.CSharp.Formatting
var analysisDocument = context.AnalysisDocument;
if (analysisDocument == null)
return;
-
using (var undo = editor.OpenUndoGroup (/*OperationType.Format*/)) {
try {
var syntaxTree = analysisDocument.GetSyntaxTreeAsync ().Result;
@@ -112,14 +111,15 @@ namespace MonoDevelop.CSharp.Formatting
editor.ReplaceText (delta + change.Span.Start, change.Span.Length, newText);
delta = delta - change.Span.Length + newText.Length;
}
-
- var caretEndOffset = caretOffset + delta;
- if (0 <= caretEndOffset && caretEndOffset < editor.Length)
- editor.CaretOffset = caretEndOffset;
- if (editor.CaretColumn == 1) {
- if (editor.CaretLine > 1 && editor.GetLine (editor.CaretLine - 1).Length == 0)
- editor.CaretLine--;
- editor.CaretColumn = editor.GetVirtualIndentationColumn (editor.CaretLine);
+ if (startOffset < caretOffset) {
+ var caretEndOffset = caretOffset + delta;
+ if (0 <= caretEndOffset && caretEndOffset < editor.Length)
+ editor.CaretOffset = caretEndOffset;
+ if (editor.CaretColumn == 1) {
+ if (editor.CaretLine > 1 && editor.GetLine (editor.CaretLine - 1).Length == 0)
+ editor.CaretLine--;
+ editor.CaretColumn = editor.GetVirtualIndentationColumn (editor.CaretLine);
+ }
}
} catch (Exception e) {
LoggingService.LogError ("Error in on the fly formatter", e);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
index dcae550ed4..8f87cc1e5a 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
@@ -64,6 +64,7 @@ namespace MonoDevelop.CSharp.Project
protected override void OnInitialize ()
{
base.OnInitialize ();
+ SupportsRoslyn = true;
StockIcon = "md-csharp-project";
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
index dbbfd5f907..82d6abfd9c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
@@ -734,7 +734,11 @@ namespace MonoDevelop.CSharp.Refactoring
} else if (p.ExplicitDefaultValue is bool) {
result.Append ((bool)p.ExplicitDefaultValue ? "true" : "false");
} else if (p.ExplicitDefaultValue == null) {
- result.Append ("null");
+ if (p.Type.IsValueType && p.Type.SpecialType != SpecialType.System_String) {
+ result.Append ("default(" + p.Type.ToMinimalDisplayString (options.SemanticModel, options.Part.SourceSpan.Start) + ")");
+ } else {
+ result.Append ("null");
+ }
} else {
result.Append (p.ExplicitDefaultValue);
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFeaturesTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFeaturesTextEditorExtension.cs
index 4ec807c365..8419616f70 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFeaturesTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFeaturesTextEditorExtension.cs
@@ -46,7 +46,7 @@ namespace MonoDevelop.CSharp.Refactoring
static CSharpFeaturesTextEditorExtension ()
{
GoToDefinitionService.TryNavigateToSymbol = delegate (ISymbol symbol, Microsoft.CodeAnalysis.Project project, bool usePreviewTab) {
- IdeApp.ProjectOperations.JumpToDeclaration (symbol, TypeSystemService.GetMonoProject (project));
+ RefactoringService.RoslynJumpToDeclaration (symbol, TypeSystemService.GetMonoProject (project));
return true;
};
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFindReferencesProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFindReferencesProvider.cs
new file mode 100644
index 0000000000..2a1ca4fed5
--- /dev/null
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpFindReferencesProvider.cs
@@ -0,0 +1,278 @@
+//
+// CSharpFindReferencesProvider.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Linq;
+using System.Threading;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Core;
+using MonoDevelop.Ide;
+using MonoDevelop.Refactoring;
+using Microsoft.CodeAnalysis.FindSymbols;
+using Microsoft.CodeAnalysis;
+using MonoDevelop.Ide.TypeSystem;
+using MonoDevelop.Ide.FindInFiles;
+using MonoDevelop.Ide.Tasks;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+
+namespace MonoDevelop.CSharp.Refactoring
+{
+ class CSharpFindReferencesProvider : FindReferencesProvider
+ {
+ internal class LookupResult
+ {
+ public static LookupResult Failure = new LookupResult ();
+
+ public bool Success { get; private set; }
+ public ISymbol Symbol { get; private set; }
+ public Solution Solution { get; private set; }
+ public MonoDevelop.Projects.Project MonoDevelopProject { get; internal set; }
+ public Compilation Compilation { get; private set; }
+
+ public LookupResult ()
+ {
+ }
+
+ public LookupResult (ISymbol symbol, Solution solution, Compilation compilation)
+ {
+ this.Success = true;
+ this.Symbol = symbol;
+ this.Solution = solution;
+ this.Compilation = compilation;
+ }
+ }
+
+ static async Task<LookupResult> TryLookupSymbolInProject (Microsoft.CodeAnalysis.Project prj, string documentationCommentId, CancellationToken token)
+ {
+ if (string.IsNullOrEmpty (documentationCommentId))
+ return LookupResult.Failure;
+ bool searchNs = documentationCommentId[0] == 'N';
+ bool searchType = documentationCommentId[0] == 'T';
+ int reminderIndex = 2;
+ var comp = await prj.GetCompilationAsync (token).ConfigureAwait (false);
+ var current = LookupNamespace (documentationCommentId, ref reminderIndex, comp.GlobalNamespace);
+ if (current == null)
+ return LookupResult.Failure;
+ if (searchNs) {
+ if (current.GetDocumentationCommentId () == documentationCommentId)
+ return new LookupResult (current, prj.Solution, comp);
+ return LookupResult.Failure;
+ }
+
+ INamedTypeSymbol type = null;
+ foreach (var t in current.GetAllTypes ()) {
+ type = LookupType (documentationCommentId, reminderIndex, t);
+ if (type != null) {
+ if (searchType) {
+ return new LookupResult(type, prj.Solution, comp);
+ }
+ break;
+ }
+ }
+ if (type == null)
+ return LookupResult.Failure;
+ foreach (var member in type.GetMembers ()) {
+ if (member.GetDocumentationCommentId () == documentationCommentId) {
+ return new LookupResult(member, prj.Solution, comp);
+ }
+ }
+ return LookupResult.Failure;
+ }
+
+ internal static async Task<LookupResult> TryLookupSymbol (string documentationCommentId, MonoDevelop.Projects.Project hintProject, CancellationToken token)
+ {
+ Microsoft.CodeAnalysis.Project codeAnalysisHintProject = null;
+ if (hintProject != null) {
+ codeAnalysisHintProject = TypeSystemService.GetCodeAnalysisProject (hintProject);
+ if (codeAnalysisHintProject != null) {
+ var result = await TryLookupSymbolInProject (codeAnalysisHintProject, documentationCommentId, token);
+ if (result.Success) {
+ result.MonoDevelopProject = hintProject;
+ return result;
+ }
+ }
+ }
+
+ foreach (var ws in TypeSystemService.AllWorkspaces) {
+ foreach (var prj in ws.CurrentSolution.Projects) {
+ if (prj == codeAnalysisHintProject)
+ continue;
+ var result = await TryLookupSymbolInProject (prj, documentationCommentId, token);
+ if (result.Success) {
+ result.MonoDevelopProject = TypeSystemService.GetMonoProject (prj);
+ return result;
+ }
+ }
+ }
+
+ return LookupResult.Failure;
+ }
+
+ static INamedTypeSymbol LookupType (string documentationCommentId, int reminder, INamedTypeSymbol current)
+ {
+ var idx = documentationCommentId.IndexOf ('.', reminder);
+ var exact = idx < 0;
+ var typeId = current.GetDocumentationCommentId ();
+ if (exact) {
+ if (typeId == documentationCommentId)
+ return current;
+ return null;
+ }
+
+ if (typeId.Length < reminder)
+ return null;
+ if (string.CompareOrdinal (documentationCommentId, reminder, typeId, reminder, idx - reminder - 1) == 0) {
+ if (typeId.Length > idx)
+ return null;
+ foreach (var subType in current.GetTypeMembers ()) {
+ var child = LookupType (documentationCommentId, idx + 1, subType);
+ if (child != null) {
+ return child;
+ }
+ }
+ return current;
+
+ }
+ return null;
+ }
+
+ static INamespaceSymbol LookupNamespace (string documentationCommentId, ref int reminder, INamespaceSymbol current)
+ {
+ var exact = documentationCommentId.IndexOf ('.', reminder) < 0;
+
+ foreach (var subNamespace in current.GetNamespaceMembers ()) {
+ if (exact) {
+ if (subNamespace.Name.Length == documentationCommentId.Length - reminder &&
+ string.CompareOrdinal (documentationCommentId, reminder, subNamespace.Name, 0, subNamespace.Name.Length) == 0)
+ return subNamespace;
+ } else {
+ if (subNamespace.Name.Length < documentationCommentId.Length - reminder - 1 &&
+ string.CompareOrdinal (documentationCommentId, reminder, subNamespace.Name, 0, subNamespace.Name.Length) == 0 &&
+ documentationCommentId [reminder + subNamespace.Name.Length] == '.') {
+ reminder += subNamespace.Name.Length + 1;
+ return LookupNamespace (documentationCommentId, ref reminder, subNamespace);
+ }
+ }
+ }
+
+ return current;
+ }
+
+ public override Task<IEnumerable<SearchResult>> FindReferences (string documentationCommentId, MonoDevelop.Projects.Project hintProject, CancellationToken token)
+ {
+ var workspace = TypeSystemService.Workspace as MonoDevelopWorkspace;
+ if (workspace == null)
+ return Task.FromResult (Enumerable.Empty<SearchResult> ());
+
+ return Task.Run (async delegate {
+ var result = new List<SearchResult> ();
+ var lookup = await TryLookupSymbol (documentationCommentId, hintProject, token);
+ if (!lookup.Success) {
+ return result;
+ }
+
+ var antiDuplicatesSet = new HashSet<SearchResult> (new SearchResultComparer ());
+ foreach (var loc in lookup.Symbol.Locations) {
+ if (!loc.IsInSource)
+ continue;
+ var fileName = loc.SourceTree.FilePath;
+ var offset = loc.SourceSpan.Start;
+ string projectedName;
+ int projectedOffset;
+ if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) {
+ fileName = projectedName;
+ offset = projectedOffset;
+ }
+ var sr = new SearchResult (new FileProvider (fileName), offset, loc.SourceSpan.Length);
+ antiDuplicatesSet.Add (sr);
+ result.Add (sr);
+ }
+
+ foreach (var mref in await SymbolFinder.FindReferencesAsync (lookup.Symbol, lookup.Solution).ConfigureAwait (false)) {
+ foreach (var loc in mref.Locations) {
+ var fileName = loc.Document.FilePath;
+ var offset = loc.Location.SourceSpan.Start;
+ string projectedName;
+ int projectedOffset;
+ if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) {
+ fileName = projectedName;
+ offset = projectedOffset;
+ }
+ var sr = new SearchResult (new FileProvider (fileName), offset, loc.Location.SourceSpan.Length);
+ if (antiDuplicatesSet.Add (sr)) {
+ result.Add (sr);
+ }
+ }
+ }
+ return (IEnumerable<SearchResult>)result;
+ });
+ }
+
+ public override Task<IEnumerable<SearchResult>> FindAllReferences (string documentationCommentId, MonoDevelop.Projects.Project hintProject, CancellationToken token)
+ {
+ var workspace = TypeSystemService.Workspace as MonoDevelopWorkspace;
+ if (workspace == null)
+ return Task.FromResult (Enumerable.Empty<SearchResult> ());
+ return Task.Run (async delegate {
+ var antiDuplicatesSet = new HashSet<SearchResult> (new SearchResultComparer ());
+ var result = new List<SearchResult> ();
+ var lookup = await TryLookupSymbol (documentationCommentId, hintProject, token);
+ if (!lookup.Success)
+ return result;
+
+ foreach (var simSym in SymbolFinder.FindSimilarSymbols (lookup.Symbol, lookup.Compilation)) {
+ foreach (var loc in simSym.Locations) {
+ var sr = new SearchResult (new FileProvider (loc.SourceTree.FilePath), loc.SourceSpan.Start, loc.SourceSpan.Length);
+ if (antiDuplicatesSet.Add (sr)) {
+ result.Add (sr);
+ }
+ }
+
+ foreach (var mref in await SymbolFinder.FindReferencesAsync (simSym, lookup.Solution).ConfigureAwait (false)) {
+ foreach (var loc in mref.Locations) {
+ var fileName = loc.Document.FilePath;
+ var offset = loc.Location.SourceSpan.Start;
+ string projectedName;
+ int projectedOffset;
+ if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) {
+ fileName = projectedName;
+ offset = projectedOffset;
+ }
+
+ var sr = new SearchResult (new FileProvider (fileName), offset, loc.Location.SourceSpan.Length);
+ if (antiDuplicatesSet.Add (sr)) {
+ result.Add (sr);
+ }
+ }
+ }
+ }
+ return (IEnumerable<SearchResult>)result;
+ });
+ }
+ }
+
+}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpJumpToDeclarationHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpJumpToDeclarationHandler.cs
new file mode 100644
index 0000000000..8ce24f29b8
--- /dev/null
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpJumpToDeclarationHandler.cs
@@ -0,0 +1,45 @@
+//
+// CSharpJumpToDeclarationHandler.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System.Threading.Tasks;
+using MonoDevelop.Refactoring;
+using MonoDevelop.Ide;
+using System.Linq;
+
+namespace MonoDevelop.CSharp.Refactoring
+{
+ class CSharpJumpToDeclarationHandler : JumpToDeclarationHandler
+ {
+ public override async Task<bool> TryJumpToDeclarationAsync (string documentIdString, MonoDevelop.Projects.Project hintProject, System.Threading.CancellationToken token)
+ {
+ var lookup = await CSharpFindReferencesProvider.TryLookupSymbol (documentIdString, hintProject, token);
+ if (!lookup.Success || lookup.Symbol.Locations.First().IsInMetadata)
+ return false;
+ IdeApp.ProjectOperations.JumpToDeclaration (lookup.Symbol, lookup.MonoDevelopProject);
+ return true;
+ }
+ }
+}
+
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
index 90bc31dcc6..cd8cab3a64 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
@@ -43,7 +43,7 @@ namespace MonoDevelop.CSharp.Refactoring
{
class FindReferencesHandler
{
- public static void FindRefs (ISymbol symbol)
+ internal static void FindRefs (ISymbol symbol)
{
var monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor (true, true);
var workspace = TypeSystemService.Workspace as MonoDevelopWorkspace;
@@ -95,7 +95,7 @@ namespace MonoDevelop.CSharp.Refactoring
monitor.Dispose ();
}
});
- }
+ }
public void Update (CommandInfo info)
{
@@ -116,60 +116,20 @@ namespace MonoDevelop.CSharp.Refactoring
var info = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, doc.Editor).Result;
var sym = info.Symbol ?? info.DeclaredSymbol;
- if (sym != null)
- FindRefs (sym);
+ if (sym != null) {
+ if (sym.Kind == SymbolKind.Local || sym.Kind == SymbolKind.Parameter || sym.Kind == SymbolKind.TypeParameter) {
+ FindRefs (sym);
+ } else {
+ RefactoringService.FindReferencesAsync (sym.GetDocumentationCommentId ());
+ }
+ }
}
}
+
+
class FindAllReferencesHandler
{
- public static void FindRefs (ISymbol obj, Compilation compilation)
- {
- var monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor (true, true);
- var workspace = TypeSystemService.Workspace as MonoDevelopWorkspace;
- if (workspace == null)
- return;
- var solution = workspace.CurrentSolution;
- Task.Run (async delegate {
- try {
- var antiDuplicatesSet = new HashSet<SearchResult> (new SearchResultComparer ());
- foreach (var simSym in SymbolFinder.FindSimilarSymbols (obj, compilation)) {
- foreach (var loc in simSym.Locations) {
- var sr = new SearchResult (new FileProvider (loc.SourceTree.FilePath), loc.SourceSpan.Start, loc.SourceSpan.Length);
- if (antiDuplicatesSet.Add (sr)) {
- monitor.ReportResult (sr);
- }
- }
-
- foreach (var mref in await SymbolFinder.FindReferencesAsync (simSym, solution).ConfigureAwait (false)) {
- foreach (var loc in mref.Locations) {
- var fileName = loc.Document.FilePath;
- var offset = loc.Location.SourceSpan.Start;
- string projectedName;
- int projectedOffset;
- if (workspace.TryGetOriginalFileFromProjection (fileName, offset, out projectedName, out projectedOffset)) {
- fileName = projectedName;
- offset = projectedOffset;
- }
-
- var sr = new SearchResult (new FileProvider (fileName), offset, loc.Location.SourceSpan.Length);
- if (antiDuplicatesSet.Add (sr)) {
- monitor.ReportResult (sr);
- }
- }
- }
- }
- } catch (Exception ex) {
- if (monitor != null)
- monitor.ReportError ("Error finding references", ex);
- else
- LoggingService.LogError ("Error finding references", ex);
- } finally {
- if (monitor != null)
- monitor.Dispose ();
- }
- });
- }
public void Update (CommandInfo info)
{
@@ -190,8 +150,13 @@ namespace MonoDevelop.CSharp.Refactoring
var info = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, doc.Editor).Result;
var sym = info.Symbol ?? info.DeclaredSymbol;
- if (sym != null)
- FindRefs (sym, info.Model.Compilation);
+ if (sym != null) {
+ if (sym.Kind == SymbolKind.Local || sym.Kind == SymbolKind.Parameter || sym.Kind == SymbolKind.TypeParameter) {
+ FindReferencesHandler.FindRefs (sym);
+ } else {
+ RefactoringService.FindAllReferencesAsync (sym.GetDocumentationCommentId ());
+ }
+ }
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs
index ea42862a3e..fef916d350 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoBaseDeclarationHandler.cs
@@ -28,6 +28,7 @@ using Microsoft.CodeAnalysis;
using MonoDevelop.Ide;
using System.Linq;
using MonoDevelop.Core;
+using MonoDevelop.Refactoring;
namespace MonoDevelop.CSharp.Refactoring
{
@@ -81,28 +82,28 @@ namespace MonoDevelop.CSharp.Refactoring
throw new ArgumentNullException ("symbol");
switch (symbol.Kind) {
case SymbolKind.NamedType:
- IdeApp.ProjectOperations.JumpToDeclaration (((ITypeSymbol)symbol).BaseType, doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (((ITypeSymbol)symbol).BaseType, doc.Project);
break;
case SymbolKind.Property:
var property = (IPropertySymbol)symbol;
if (property.OverriddenProperty != null)
- IdeApp.ProjectOperations.JumpToDeclaration (property.OverriddenProperty, doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (property.OverriddenProperty, doc.Project);
else
- IdeApp.ProjectOperations.JumpToDeclaration (property.ExplicitInterfaceImplementations.First (), doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (property.ExplicitInterfaceImplementations.First (), doc.Project);
break;
case SymbolKind.Event:
var evt = (IEventSymbol)symbol;
if (evt.OverriddenEvent != null)
- IdeApp.ProjectOperations.JumpToDeclaration (evt.OverriddenEvent, doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (evt.OverriddenEvent, doc.Project);
else
- IdeApp.ProjectOperations.JumpToDeclaration (evt.ExplicitInterfaceImplementations.First (), doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (evt.ExplicitInterfaceImplementations.First (), doc.Project);
break;
case SymbolKind.Method:
var method = (IMethodSymbol)symbol;
if (method.OverriddenMethod != null)
- IdeApp.ProjectOperations.JumpToDeclaration (method.OverriddenMethod, doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (method.OverriddenMethod, doc.Project);
else
- IdeApp.ProjectOperations.JumpToDeclaration (method.ExplicitInterfaceImplementations.First (), doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (method.ExplicitInterfaceImplementations.First (), doc.Project);
break;
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
index f33182b7fe..7ca54c08f6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/GotoDeclarationHandler.cs
@@ -75,9 +75,9 @@ namespace MonoDevelop.CSharp.Refactoring
public static void JumpToDeclaration (MonoDevelop.Ide.Gui.Document doc, RefactoringSymbolInfo info)
{
if (info.Symbol != null)
- IdeApp.ProjectOperations.JumpToDeclaration (info.Symbol, doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (info.Symbol, doc.Project);
if (info.CandidateSymbols.Length > 0)
- IdeApp.ProjectOperations.JumpToDeclaration (info.CandidateSymbols[0], doc.Project);
+ RefactoringService.RoslynJumpToDeclaration (info.CandidateSymbols[0], doc.Project);
}
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
index e0250b41c3..8db220389e 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/RefactoryCommands.cs
@@ -163,7 +163,7 @@ namespace MonoDevelop.CSharp.Refactoring
return result;
}
- protected override void Update (CommandArrayInfo ainfo)
+ protected override async void Update (CommandArrayInfo ainfo)
{
var doc = IdeApp.Workbench.ActiveDocument;
if (doc == null || doc.FileName == FilePath.Null || doc.ParsedDocument == null)
@@ -171,7 +171,10 @@ namespace MonoDevelop.CSharp.Refactoring
var semanticModel = doc.ParsedDocument.GetAst<SemanticModel> ();
if (semanticModel == null)
return;
- var info = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, doc.Editor).Result;
+ var task = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, doc.Editor);
+ if (!task.Wait (2000))
+ return;
+ var info = task.Result;
bool added = false;
var ext = doc.GetContent<CodeActionEditorExtension> ();
@@ -238,10 +241,18 @@ namespace MonoDevelop.CSharp.Refactoring
var sym = info.Symbol ?? info.DeclaredSymbol;
if (doc.HasProject && sym != null) {
- ainfo.Add (IdeApp.CommandService.GetCommandInfo (RefactoryCommands.FindReferences), new System.Action (() => FindReferencesHandler.FindRefs (sym)));
+ ainfo.Add (IdeApp.CommandService.GetCommandInfo (RefactoryCommands.FindReferences), new System.Action (() => {
+
+ if (sym.Kind == SymbolKind.Local || sym.Kind == SymbolKind.Parameter || sym.Kind == SymbolKind.TypeParameter) {
+ FindReferencesHandler.FindRefs (sym);
+ } else {
+ RefactoringService.FindReferencesAsync (sym.GetDocumentationCommentId ());
+ }
+
+ }));
try {
if (Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.FindSimilarSymbols (sym, semanticModel.Compilation).Count () > 1)
- ainfo.Add (IdeApp.CommandService.GetCommandInfo (RefactoryCommands.FindAllReferences), new System.Action (() => FindAllReferencesHandler.FindRefs (info.Symbol, semanticModel.Compilation)));
+ ainfo.Add (IdeApp.CommandService.GetCommandInfo (RefactoryCommands.FindAllReferences), new System.Action (() => RefactoringService.FindAllReferencesAsync (sym.GetDocumentationCommentId ())));
} catch (Exception) {
// silently ignore roslyn bug.
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/CSharpNUnitSourceCodeLocationFinder.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/CSharpNUnitSourceCodeLocationFinder.cs
new file mode 100644
index 0000000000..a1b878aea2
--- /dev/null
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/CSharpNUnitSourceCodeLocationFinder.cs
@@ -0,0 +1,77 @@
+//
+// CSharpNUnitSourceCodeLocationFinder.cs
+//
+// Author:
+// mkrueger <>
+//
+// Copyright (c) 2016 mkrueger
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using MonoDevelop.NUnit;
+using MonoDevelop.Ide.TypeSystem;
+using System.Threading;
+using Microsoft.CodeAnalysis;
+using System.Linq;
+using MonoDevelop.Projects;
+
+namespace MonoDevelop.CSharp.UnitTests
+{
+ class CSharpNUnitSourceCodeLocationFinder : NUnitSourceCodeLocationFinder
+ {
+ public override async System.Threading.Tasks.Task<SourceCodeLocation> GetSourceCodeLocationAsync (MonoDevelop.Projects.Project project, string fixtureTypeNamespace, string fixtureTypeName, string testName, System.Threading.CancellationToken cancellationToken)
+ {
+ var csc = new CancellationTokenSource ();
+ var ctx = await TypeSystemService.GetCompilationAsync (project, csc.Token).ConfigureAwait (false);
+ var cls = ctx?.Assembly?.GetTypeByMetadataName (string.IsNullOrEmpty (fixtureTypeNamespace) ? fixtureTypeName : fixtureTypeNamespace + "." + fixtureTypeName);
+ if (cls == null)
+ return null;
+ if (cls.Name != testName) {
+ foreach (var met in cls.GetMembers ().OfType<IMethodSymbol> ()) {
+ if (met.Name == testName) {
+ var loc = met.Locations.FirstOrDefault (l => l.IsInSource);
+ return ConvertToSourceCodeLocation (loc);
+ }
+ }
+
+ int idx = testName != null ? testName.IndexOf ('(') : -1;
+ if (idx > 0) {
+ testName = testName.Substring (0, idx);
+ foreach (var met in cls.GetMembers ().OfType<IMethodSymbol> ()) {
+ if (met.Name == testName){
+ var loc = met.Locations.FirstOrDefault (l => l.IsInSource);
+ return ConvertToSourceCodeLocation (loc);
+ }
+ }
+ }
+ }
+ var classLoc = cls.Locations.FirstOrDefault (l => l.IsInSource);
+ return ConvertToSourceCodeLocation (classLoc);
+ }
+
+
+ SourceCodeLocation ConvertToSourceCodeLocation (Location loc)
+ {
+ var lineSpan = loc.GetLineSpan ();
+ return new SourceCodeLocation (loc.SourceTree.FilePath, lineSpan.StartLinePosition.Line, lineSpan.StartLinePosition.Character);
+ }
+
+ }
+}
+
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
index c555fbd408..57bf692a05 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
@@ -35,6 +35,7 @@ using Microsoft.CodeAnalysis.CSharp.Syntax;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Editor;
using System.Linq;
+using MonoDevelop.Refactoring;
namespace MonoDevelop.CSharp
{
@@ -101,7 +102,7 @@ namespace MonoDevelop.CSharp
if (IsNavigatable (info)) {
result.Add (new NavigationSegment (node.Span.Start, node.Span.Length, delegate {
GLib.Timeout.Add (50, delegate {
- IdeApp.ProjectOperations.JumpToDeclaration (info.Symbol, documentContext.Project);
+ RefactoringService.RoslynJumpToDeclaration (info.Symbol, documentContext.Project);
return false;
});
}));
@@ -119,7 +120,7 @@ namespace MonoDevelop.CSharp
if (IsNavigatable(info)) {
result.Add (new NavigationSegment (node.Name.Span.Start, node.Name.Span.Length, delegate {
GLib.Timeout.Add (50, delegate {
- IdeApp.ProjectOperations.JumpToDeclaration (info.Symbol, documentContext.Project);
+ RefactoringService.RoslynJumpToDeclaration (info.Symbol, documentContext.Project);
return false;
});
}));
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
index a6110bdae7..347c1e5be4 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
@@ -44,6 +44,7 @@ using Gtk;
using MonoDevelop.Ide;
using MonoDevelop.CSharp;
using MonoDevelop.Components.MainToolbar;
+using MonoDevelop.Refactoring;
namespace MonoDevelop.CSharp
{
@@ -552,7 +553,7 @@ namespace MonoDevelop.CSharp
if (doc != null) {
var symbol = await type.GetSymbolAsync (doc, token);
var project = TypeSystemService.GetMonoProject (doc.Id);
- IdeApp.ProjectOperations.JumpToDeclaration (symbol, project);
+ RefactoringService.RoslynJumpToDeclaration (symbol, project);
}
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
index 6ed61d9ca2..57ad3c0f9b 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
@@ -53,6 +53,7 @@ namespace MonoDevelop.CSharp
{
public override void Dispose ()
{
+ CancelDocumentParsedUpdate ();
CancelUpdatePathTimeout ();
CancelUpdatePath ();
Editor.TextChanging -= Editor_TextChanging;
@@ -121,9 +122,31 @@ namespace MonoDevelop.CSharp
updatePathTimeoutId = 0;
}
+ CancellationTokenSource documentParsedCancellationTokenSource = new CancellationTokenSource ();
+
void DocumentContext_DocumentParsed (object sender, EventArgs e)
{
SubscribeCaretPositionChange ();
+
+ // Fixes a potential memory leak see: https://bugzilla.xamarin.com/show_bug.cgi?id=38041
+ if (ownerProjects.Count > 1) {
+ var currentOwners = ownerProjects.Where (p => p != DocumentContext.Project).Select (p => TypeSystemService.GetCodeAnalysisProject (p)).ToList ();
+ CancelDocumentParsedUpdate ();
+ var token = documentParsedCancellationTokenSource.Token;
+ Task.Run (async delegate {
+ foreach (var otherProject in currentOwners) {
+ if (otherProject == null)
+ continue;
+ await otherProject.GetCompilationAsync (token).ConfigureAwait (false);
+ }
+ });
+ }
+ }
+
+ void CancelDocumentParsedUpdate ()
+ {
+ documentParsedCancellationTokenSource.Cancel ();
+ documentParsedCancellationTokenSource = new CancellationTokenSource ();
}
void SubscribeCaretPositionChange ()
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/SignatureMarkupCreator.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/SignatureMarkupCreator.cs
index 2d00548f7c..3bcfcae94c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/SignatureMarkupCreator.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/SignatureMarkupCreator.cs
@@ -82,9 +82,6 @@ namespace MonoDevelop.CSharp
this.colorStyle = SyntaxModeService.GetDefaultColorStyle (Ide.IdeApp.Preferences.UserInterfaceSkin);
this.ctx = ctx;
if (ctx != null) {
- if (ctx.ParsedDocument == null || ctx.AnalysisDocument == null) {
- LoggingService.LogError ("Signature markup creator created with invalid context." + Environment.NewLine + Environment.StackTrace);
- }
this.options = ctx.GetOptionSet ();
} else {
this.options = MonoDevelop.Ide.TypeSystem.TypeSystemService.Workspace.Options;
@@ -109,7 +106,7 @@ namespace MonoDevelop.CSharp
if (model == null) {
var parsedDocument = ctx.ParsedDocument;
if (parsedDocument != null) {
- model = parsedDocument.GetAst<SemanticModel> () ?? ctx.AnalysisDocument.GetSemanticModelAsync ().Result;
+ model = parsedDocument.GetAst<SemanticModel> () ?? ctx.AnalysisDocument?.GetSemanticModelAsync ().Result;
}
}
//Math.Min (model.SyntaxTree.Length, offset)) is needed in case parsedDocument.GetAst<SemanticModel> () is outdated
diff --git a/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs b/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs
index 145c159fe5..ec335ae567 100644
--- a/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs
@@ -27,6 +27,8 @@ using System;
using AppKit;
using CoreGraphics;
+using Foundation;
+using MonoDevelop.Core;
using MonoDevelop.Core;
using MonoDevelop.Ide;
@@ -125,7 +127,24 @@ namespace MonoDevelop.MacIntegration.MainToolbar
var locationInSV = Superview.ConvertPointFromView (theEvent.LocationInWindow, null);
if (theEvent.ClickCount == 2 && HitTest (locationInSV) == this) {
- Window.Zoom (this);
+ bool miniaturise = false;
+
+ if (MacSystemInformation.OsVersion < MacSystemInformation.ElCapitan) {
+ miniaturise = NSUserDefaults.StandardUserDefaults.BoolForKey ("AppleMiniaturizeOnDoubleClick");
+ } else {
+ var action = NSUserDefaults.StandardUserDefaults.StringForKey ("AppleActionOnDoubleClick");
+ if (action == "None") {
+ return;
+ } else if (action == "Minimize") {
+ miniaturise = true;
+ }
+ }
+
+ if (miniaturise) {
+ Window.Miniaturize (this);
+ } else {
+ Window.Zoom (this);
+ }
}
}
diff --git a/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs b/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
index 0f66834775..f89fc715ce 100644
--- a/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
@@ -298,9 +298,6 @@ namespace MonoDevelop.MacIntegration.MainToolbar
var _configuration = configuration;
menu.AddItem (new NSMenuItem (configuration.DisplayString, (o2, e2) => {
ActiveConfiguration = configurationModel.First (c => c.OriginalId == _configuration.OriginalId);
- if (ConfigurationChanged != null)
- ConfigurationChanged (o2, e2);
- UpdatePathText (ConfigurationIdx, _configuration.DisplayString);
}) {
Enabled = true,
IndentationLevel = 1,
@@ -427,6 +424,8 @@ namespace MonoDevelop.MacIntegration.MainToolbar
set {
activeConfiguration = value;
state |= CellState.ConfigurationShown;
+ if (ConfigurationChanged != null)
+ ConfigurationChanged (this, EventArgs.Empty);
UpdatePathText (ConfigurationIdx, value.DisplayString);
OnSizeChanged ();
}
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxLoader.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxLoader.cs
index f7fad29038..f5e8edc5b8 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxLoader.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxLoader.cs
@@ -64,7 +64,7 @@ namespace MonoDevelop.DesignerSupport.Toolbox
ExternalLoader eloader;
if (!externalLoaders.TryGetValue (runtime, out eloader)) {
- eloader = (ExternalLoader) Runtime.ProcessService.CreateExternalProcessObject (typeof(ExternalLoader), runtime);
+ eloader = (ExternalLoader) Runtime.ProcessService.CreateExternalProcessObject (typeof(ExternalLoader), runtime.GetExecutionHandler ());
externalLoaders [runtime] = eloader;
values [counter++] = eloader;
} else {
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
index bef385e027..9bd11bc1f6 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
@@ -38,6 +38,7 @@ using MonoDevelop.DesignerSupport;
using Microsoft.CodeAnalysis;
using MonoDevelop.Ide;
using System.Threading.Tasks;
+using MonoDevelop.Refactoring;
namespace MonoDevelop.GtkCore.GuiBuilder
{
@@ -183,7 +184,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
var met = cls.GetMembers (signal.Handler).OfType<IMethodSymbol> ().FirstOrDefault ();
if (met != null) {
ShowPage (1);
- IdeApp.ProjectOperations.JumpToDeclaration (met);
+ RefactoringService.RoslynJumpToDeclaration(met);
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
index 00845bd1f2..f1b4ded7ea 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
@@ -46,6 +46,7 @@ using Gdk;
using MonoDevelop.Ide;
using Microsoft.CodeAnalysis;
using System.Threading.Tasks;
+using MonoDevelop.Refactoring;
namespace MonoDevelop.GtkCore.GuiBuilder
{
@@ -378,7 +379,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
.FirstOrDefault ();
if (met != null) {
ShowPage (0);
- IdeApp.ProjectOperations.JumpToDeclaration (met);
+ RefactoringService.RoslynJumpToDeclaration (met);
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs
index be46db225f..445b9e46d8 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/AddPackagesDialog.cs
@@ -111,6 +111,9 @@ namespace MonoDevelop.PackageManagement
viewModel.PropertyChanged -= ViewModelPropertyChanged;
parentViewModel.Dispose ();
DisposeExistingTimer ();
+ packageStore.Clear ();
+ viewModel = null;
+ parentViewModel = null;
base.Dispose (disposing);
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs
index c22033d690..5d959a7146 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesFolderNode.cs
@@ -139,6 +139,11 @@ namespace MonoDevelop.PackageManagement.NodeBuilders
{
return reference.IsPackageInstalled (project.DotNetProject);
}
+
+ public void ClearPackageReferences ()
+ {
+ packageReferences = null;
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesProjectNodeBuilderExtension.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesProjectNodeBuilderExtension.cs
index 1fc090597e..98f1c484fc 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesProjectNodeBuilderExtension.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/ProjectPackagesProjectNodeBuilderExtension.cs
@@ -83,7 +83,17 @@ namespace MonoDevelop.PackageManagement.NodeBuilders
{
ITreeBuilder builder = Context.GetTreeBuilder (project);
if (builder != null) {
- builder.UpdateChildren ();
+ if (builder.MoveToChild ("References", typeof (ProjectReferenceCollection))) {
+ builder.UpdateAll ();
+ builder.MoveToParent ();
+ }
+
+ if (builder.MoveToChild ("Packages", typeof (ProjectPackagesFolderNode))) {
+ var packagesFolder = (ProjectPackagesFolderNode)builder.DataItem;
+ packagesFolder.ClearPackageReferences ();
+ builder.UpdateAll ();
+ builder.MoveToParent ();
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/UpdatedPackagesInSolutionTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/UpdatedPackagesInSolutionTests.cs
index 3bd97e9fa4..0a0a83eed6 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/UpdatedPackagesInSolutionTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/UpdatedPackagesInSolutionTests.cs
@@ -654,6 +654,37 @@ namespace MonoDevelop.PackageManagement.Tests
Assert.AreEqual (0, updatedPackages.GetPackages ().Count ());
}
+
+ [Test]
+ public void GetUpdatedPackages_UpdatingThreeOldAndroidPackagesInstallsOneAndUpdatesOneAndRemovesOneWithOneInstall_NoUpdatesRemain ()
+ {
+ CreateUpdatedPackagesInSolution ();
+ FakePackageManagementProject project = AddProjectToSolution ();
+ project.AddPackageReference ("Xamarin.Android.Support.v13", "20.0.0.4");
+ project.AddPackageReference ("Xamarin.Android.Support.v4", "20.0.0.4");
+ project.AddPackageReference ("Xamarin.Android.Support.v7.AppCompat", "20.0.0.2");
+ AddUpdatedPackageToAggregateSourceRepository ("Xamarin.Android.Support.v13", "23.1.1.0");
+ AddUpdatedPackageToAggregateSourceRepository ("Xamarin.Android.Support.v4", "23.1.1.0");
+ AddUpdatedPackageToAggregateSourceRepository ("Xamarin.Android.Support.v7.AppCompat", "23.1.1.0");
+ updatedPackagesInSolution.CheckForUpdates ();
+ int originalUpdatesAvailable = updatedPackagesInSolution
+ .GetUpdatedPackages (project.Project)
+ .GetPackages ()
+ .Count ();
+ var task = taskFactory.FakeTasksCreated [0] as FakeTask<CheckForUpdatesTask>;
+ task.ExecuteTaskButNotContinueWith ();
+ project.PackageReferences.Clear ();
+ project.AddPackageReference ("Xamarin.Android.Support.v4", "23.1.1.0");
+ project.AddPackageReference ("Xamarin.Android.Support.v7.AppCompat", "23.1.1.0");
+ var installedPackage = FakePackage.CreatePackageWithVersion ("Xamarin.Android.Support.v4", "23.1.1.0");
+ packageManagementEvents.OnParentPackageInstalled (installedPackage, project);
+ task.ExecuteContinueWith ();
+
+ UpdatedPackagesInProject updatedPackages = updatedPackagesInSolution.GetUpdatedPackages (project.Project);
+
+ Assert.AreEqual (3, originalUpdatesAvailable);
+ Assert.AreEqual (0, updatedPackages.GetPackages ().Count ());
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
index d7ad16154e..f9178786a8 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
@@ -79,7 +79,13 @@ namespace MonoDevelop.PackageManagement
AddInstallActionsToPendingQueue (actions);
packageManagementEvents.OnPackageOperationsStarting ();
runCount++;
- BackgroundDispatch (() => TryRunActionsWithProgressMonitor (progressMessage, actions.ToList ()));
+
+ List<IPackageAction> actionsList = actions.ToList ();
+ BackgroundDispatch (() => {
+ TryRunActionsWithProgressMonitor (progressMessage, actionsList);
+ actionsList = null;
+ progressMessage = null;
+ });
}
void AddInstallActionsToPendingQueue (IEnumerable<IPackageAction> actions)
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInProject.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInProject.cs
index c73b1ccd6d..66aeeb4985 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInProject.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/UpdatedPackagesInProject.cs
@@ -82,6 +82,13 @@ namespace MonoDevelop.PackageManagement
packages.Remove (package);
}
}
+
+ RemoveUninstalledPackages (packageReferences);
+ }
+
+ void RemoveUninstalledPackages (IEnumerable<PackageReference> packageReferences)
+ {
+ packages.RemoveAll (package => !packageReferences.Any (packageReference => packageReference.Id == package.Id));
}
}
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/AssemblyInfo.cs b/main/src/addins/MonoDevelop.Refactoring/AssemblyInfo.cs
index 120f59415c..a78ff47618 100644
--- a/main/src/addins/MonoDevelop.Refactoring/AssemblyInfo.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/AssemblyInfo.cs
@@ -7,5 +7,6 @@ using System.Reflection;
[assembly: AssemblyDescription ("Provides refactoring support to MonoDevelop")]
[assembly: AssemblyVersion ("2.6")]
[assembly: AssemblyCopyright ("X11")]
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("FSharpBinding")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MonoDevelop.CSharpBinding")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MonoDevelop.PackageManagement")]
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
index b327d21e98..f10459f87a 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
@@ -149,7 +149,7 @@ namespace MonoDevelop.AnalysisCore.Gui
var ad = new AnalysisDocument (Editor, DocumentContext);
Task.Run (() => {
try {
- var result = CodeDiagnosticRunner.Check (ad, token);
+ var result = CodeDiagnosticRunner.Check (ad, token).Result;
if (token.IsCancellationRequested)
return;
var updater = new ResultsUpdater (this, result, token);
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
index 9a7e31ccdc..571cff665b 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
@@ -149,7 +149,7 @@ namespace MonoDevelop.CodeActions
if (Editor.IsInAtomicUndo)
return;
CancelQuickFixTimer ();
- if (AnalysisOptions.EnableFancyFeatures && DocumentContext.ParsedDocument != null && !Debugger.DebuggingService.IsDebugging) {
+ if (AnalysisOptions.EnableFancyFeatures && DocumentContext.ParsedDocument != null) {
var token = quickFixCancellationTokenSource.Token;
var curOffset = Editor.CaretOffset;
if (HasCurrentFixes) {
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticRunner.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticRunner.cs
index d07bff1ef4..b7ce5ed5fe 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticRunner.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticRunner.cs
@@ -39,13 +39,16 @@ using MonoDevelop.AnalysisCore.Gui;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis;
using System.Threading.Tasks;
+using System.Diagnostics;
namespace MonoDevelop.CodeIssues
{
static class CodeDiagnosticRunner
{
- static List<CodeDiagnosticDescriptor> diagnostics;
- public static IEnumerable<Result> Check (AnalysisDocument analysisDocument, CancellationToken cancellationToken)
+ static IEnumerable<CodeDiagnosticDescriptor> diagnostics;
+ static TraceListener consoleTraceListener = new ConsoleTraceListener ();
+
+ public static async Task<IEnumerable<Result>> Check (AnalysisDocument analysisDocument, CancellationToken cancellationToken)
{
var input = analysisDocument.DocumentContext;
if (!AnalysisOptions.EnableFancyFeatures || input.Project == null || !input.IsCompileableInProject || input.AnalysisDocument == null)
@@ -60,7 +63,7 @@ namespace MonoDevelop.CodeIssues
var providers = new List<DiagnosticAnalyzer> ();
var alreadyAdded = new HashSet<Type>();
if (diagnostics == null) {
- diagnostics = CodeRefactoringService.GetCodeDiagnosticsAsync (analysisDocument.DocumentContext, language, cancellationToken).Result.ToList ();
+ diagnostics = await CodeRefactoringService.GetCodeDiagnosticsAsync (analysisDocument.DocumentContext, language, cancellationToken);
}
foreach (var diagnostic in diagnostics) {
if (alreadyAdded.Contains (diagnostic.DiagnosticAnalyzerType))
@@ -74,6 +77,9 @@ namespace MonoDevelop.CodeIssues
if (providers.Count == 0 || cancellationToken.IsCancellationRequested)
return Enumerable.Empty<Result> ();
+ #if DEBUG
+ Debug.Listeners.Add (consoleTraceListener);
+ #endif
CompilationWithAnalyzers compilationWithAnalyzer;
var analyzers = System.Collections.Immutable.ImmutableArray<DiagnosticAnalyzer>.Empty.AddRange (providers);
@@ -82,10 +88,15 @@ namespace MonoDevelop.CodeIssues
compilationWithAnalyzer = compilation.WithAnalyzers (analyzers, null, cancellationToken);
if (input.ParsedDocument == null || cancellationToken.IsCancellationRequested)
return Enumerable.Empty<Result> ();
- diagnosticList.AddRange (compilationWithAnalyzer.GetAnalyzerSemanticDiagnosticsAsync (model, null, cancellationToken).Result);
+
+ diagnosticList.AddRange (await compilationWithAnalyzer.GetAnalyzerSemanticDiagnosticsAsync (model, null, cancellationToken).ConfigureAwait (false));
+ diagnosticList.AddRange (await compilationWithAnalyzer.GetAnalyzerSyntaxDiagnosticsAsync (model.SyntaxTree, cancellationToken).ConfigureAwait (false));
} catch (Exception) {
return Enumerable.Empty<Result> ();
} finally {
+ #if DEBUG
+ Debug.Listeners.Remove (consoleTraceListener);
+ #endif
CompilationWithAnalyzers.ClearAnalyzerState (analyzers);
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml
index 764ffbfad4..eb941dccf9 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.addin.xml
@@ -8,7 +8,7 @@
<ExtensionPoint path = "/MonoDevelop/Refactoring/CodeGenerators" name = "Code Generators">
<ExtensionNode name="Class"/>
</ExtensionPoint>
-
+
<ExtensionPoint path = "/MonoDevelop/Refactoring/ASTProvider" name = "ASTProviders">
<ExtensionNode name="Class"/>
</ExtensionPoint>
@@ -17,6 +17,14 @@
<ExtensionNode name="Class"/>
</ExtensionPoint>
+ <ExtensionPoint path = "/MonoDevelop/Refactoring/FindReferencesProvider">
+ <ExtensionNode name="Class"/>
+ </ExtensionPoint>
+
+ <ExtensionPoint path = "/MonoDevelop/Refactoring/JumpToDeclarationHandler">
+ <ExtensionNode name="Class"/>
+ </ExtensionPoint>
+
<ExtensionNodeSet id="MonoDevelop.AnalysisCore.Rules">
<ExtensionNode name="Category" type="MonoDevelop.Ide.Codons.CategoryNode">
<ExtensionNodeSet id="MonoDevelop.AnalysisCore.Rules" />
@@ -29,7 +37,7 @@
<Description>Analysis rules.</Description>
<ExtensionNodeSet id="MonoDevelop.AnalysisCore.Rules" />
</ExtensionPoint>
-
+
<ExtensionPoint path = "/MonoDevelop/AnalysisCore/Types" name = "Analysis rule input/output types">
<Description>Analysis rule input/output types.</Description>
<ExtensionNode name="Type" type="MonoDevelop.AnalysisCore.Extensions.AnalysisTypeExtensionNode" />
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
index b08275eb5b..3509cbcedd 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
@@ -170,6 +170,8 @@
<Compile Include="MonoDevelop.CodeIssues\ISuppressionFixProvider.cs" />
<Compile Include="MonoDevelop.CodeIssues\CodeFix.cs" />
<Compile Include="MonoDevelop.CodeIssues\CSharpSuppressionFixProvider.cs" />
+ <Compile Include="MonoDevelop.Refactoring\FindReferencesProvider.cs" />
+ <Compile Include="MonoDevelop.Refactoring\JumpToDeclarationHandler.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="MonoDevelop.Refactoring\" />
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/FindReferencesProvider.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/FindReferencesProvider.cs
new file mode 100644
index 0000000000..9e8d17fb4d
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/FindReferencesProvider.cs
@@ -0,0 +1,42 @@
+//
+// FindReferencesProvider.cs
+//
+// Author:
+// mkrueger <>
+//
+// Copyright (c) 2016
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections;
+using System.Collections.Generic;
+using MonoDevelop.Ide.FindInFiles;
+using MonoDevelop.Projects;
+
+namespace MonoDevelop.Refactoring
+{
+ abstract class FindReferencesProvider
+ {
+ public abstract Task<IEnumerable<SearchResult>> FindReferences (string documentationCommentId, Project hintProject, CancellationToken token = default(CancellationToken));
+ public abstract Task<IEnumerable<SearchResult>> FindAllReferences (string documentationCommentId, Project hintProject, CancellationToken token = default(CancellationToken));
+ }
+}
+
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/JumpToDeclarationHandler.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/JumpToDeclarationHandler.cs
new file mode 100644
index 0000000000..54f2b36559
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/JumpToDeclarationHandler.cs
@@ -0,0 +1,37 @@
+//
+// JumpToDeclarationHandler.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MonoDevelop.Refactoring
+{
+ abstract class JumpToDeclarationHandler
+ {
+ public abstract Task<bool> TryJumpToDeclarationAsync (string documentIdString, Projects.Project hintProject, CancellationToken token = default(CancellationToken));
+ }
+}
+
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
index e0ef78a287..fed58ad5a0 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
@@ -43,16 +43,42 @@ using MonoDevelop.Core.Instrumentation;
using MonoDevelop.Ide.Editor;
using Microsoft.CodeAnalysis.Options;
using MonoDevelop.Ide;
-
+using MonoDevelop.Projects;
+using Microsoft.CodeAnalysis;
+
namespace MonoDevelop.Refactoring
-{
+{
public static class RefactoringService
{
internal static Func<TextEditor, DocumentContext, OptionSet> OptionSetCreation;
+ static List<FindReferencesProvider> findReferencesProvider = new List<FindReferencesProvider> ();
+ static List<JumpToDeclarationHandler> jumpToDeclarationHandler = new List<JumpToDeclarationHandler> ();
static RefactoringService ()
{
+ AddinManager.AddExtensionNodeHandler ("/MonoDevelop/Refactoring/FindReferencesProvider", delegate(object sender, ExtensionNodeEventArgs args) {
+ var provider = (FindReferencesProvider) args.ExtensionObject;
+ switch (args.Change) {
+ case ExtensionChange.Add:
+ findReferencesProvider.Add (provider);
+ break;
+ case ExtensionChange.Remove:
+ findReferencesProvider.Remove (provider);
+ break;
+ }
+ });
+ AddinManager.AddExtensionNodeHandler ("/MonoDevelop/Refactoring/JumpToDeclarationHandler", delegate(object sender, ExtensionNodeEventArgs args) {
+ var provider = (JumpToDeclarationHandler) args.ExtensionObject;
+ switch (args.Change) {
+ case ExtensionChange.Add:
+ jumpToDeclarationHandler.Add (provider);
+ break;
+ case ExtensionChange.Remove:
+ jumpToDeclarationHandler.Remove (provider);
+ break;
+ }
+ });
}
class RenameHandler
@@ -80,7 +106,23 @@ namespace MonoDevelop.Refactoring
{
AcceptChanges (monitor, changes, MonoDevelop.Ide.TextFileProvider.Instance);
}
-
+
+ public static async Task RoslynJumpToDeclaration (ISymbol symbol, Projects.Project hintProject = null, CancellationToken token = default(CancellationToken))
+ {
+ if (symbol.Locations.Any (loc => loc.IsInSource)) { // all locals are in source.
+ await Runtime.RunInMainThread (delegate {
+ IdeApp.ProjectOperations.JumpToDeclaration (symbol);
+ });
+ return;
+ }
+ var result = await TryJumpToDeclarationAsync (symbol.GetDocumentationCommentId (), hintProject, token).ConfigureAwait (false);
+ if (!result) {
+ await Runtime.RunInMainThread (delegate {
+ IdeApp.ProjectOperations.JumpToDeclaration (symbol, hintProject);
+ });
+ }
+ }
+
public static void AcceptChanges (ProgressMonitor monitor, IList<Change> changes, MonoDevelop.Ide.ITextFileProvider fileProvider)
{
var rctx = new RefactoringOptions (null, null);
@@ -201,21 +243,66 @@ namespace MonoDevelop.Refactoring
return location;
}
- //static readonly CodeAnalysisBatchRunner runner = new CodeAnalysisBatchRunner();
+ public static async Task FindReferencesAsync (string documentIdString, Projects.Project hintProject = null, CancellationToken token = default(CancellationToken))
+ {
+ if (hintProject == null)
+ hintProject = IdeApp.Workbench.ActiveDocument?.Project;
+ var monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor (true, true);
+ try {
+ foreach (var provider in findReferencesProvider) {
+ foreach (var result in await provider.FindReferences (documentIdString, hintProject, token)) {
+ monitor.ReportResult (result);
+ }
+ }
+ } catch (Exception ex) {
+ if (monitor != null)
+ monitor.ReportError ("Error finding references", ex);
+ else
+ LoggingService.LogError ("Error finding references", ex);
+ } finally {
+ if (monitor != null)
+ monitor.Dispose ();
+ }
+ }
+
+ public static async Task FindAllReferencesAsync (string documentIdString, Projects.Project hintProject = null, CancellationToken token = default(CancellationToken))
+ {
+ if (hintProject == null)
+ hintProject = IdeApp.Workbench.ActiveDocument?.Project;
+ var monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor (true, true);
+ try {
+ foreach (var provider in findReferencesProvider) {
+ foreach (var result in await provider.FindAllReferences (documentIdString, hintProject, token)) {
+ monitor.ReportResult (result);
+ }
+ }
+ } catch (OperationCanceledException) {
-// /// <summary>
-// /// Queues a code analysis job.
-// /// </summary>
-// /// <param name="job">The job to queue.</param>
-// /// <param name="progressMessage">
-// /// The message used for a progress monitor, or null if no progress monitor should be used.
-// /// </param>
-// public static IJobContext QueueCodeIssueAnalysis(IAnalysisJob job, string progressMessage = null)
-// {
-// if (progressMessage != null)
-// job = new ProgressMonitorWrapperJob (job, progressMessage);
-// return runner.QueueJob (job);
-// return null;
-// }
+ } catch (Exception ex) {
+ if (monitor != null)
+ monitor.ReportError ("Error finding references", ex);
+ else
+ LoggingService.LogError ("Error finding references", ex);
+ } finally {
+ if (monitor != null)
+ monitor.Dispose ();
+ }
+ }
+
+ public static async Task<bool> TryJumpToDeclarationAsync (string documentIdString, Projects.Project hintProject = null, CancellationToken token = default(CancellationToken))
+ {
+ try {
+ if (hintProject == null)
+ hintProject = IdeApp.Workbench.ActiveDocument?.Project;
+ foreach (var handler in jumpToDeclarationHandler) {
+ if (await handler.TryJumpToDeclarationAsync (documentIdString, hintProject, token))
+ return true;
+ }
+ } catch (OperationCanceledException) {
+ } catch (Exception ex) {
+ LoggingService.LogError ("Error finding references", ex);
+ }
+ return false;
+ }
}
-}
+} \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
index 0e9417f934..693ad315a0 100644
--- a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
@@ -82,6 +82,10 @@
<HintPath>..\..\..\external\roslyn\Binaries\Release\System.Composition.AttributedModel.dll</HintPath>
<Private>False</Private>
</Reference>
+ <Reference Include="System.Collections.Immutable">
+ <HintPath>..\..\..\build\bin\System.Collections.Immutable.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
index 90c7229aba..366c5c355a 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
@@ -44,16 +44,11 @@ namespace MonoDevelop.SourceEditor
readonly static List<SourceEditorView> openFiles = new List<SourceEditorView> ();
readonly static FileSystemWatcher fileSystemWatcher;
- public static bool SuspendFileWatch {
- get;
- set;
- }
-
static FileRegistry ()
{
fileSystemWatcher = new FileSystemWatcher ();
- fileSystemWatcher.Created += (s,e) => Runtime.RunInMainThread (() => OnFileChanged (s,e));
- fileSystemWatcher.Changed += (s,e) => Runtime.RunInMainThread (() => OnFileChanged (s,e));
+ fileSystemWatcher.Created += (s, e) => Runtime.RunInMainThread (() => OnFileChanged (s, e));
+ fileSystemWatcher.Changed += (s, e) => Runtime.RunInMainThread (() => OnFileChanged (s, e));
FileService.FileCreated += HandleFileServiceChange;
FileService.FileChanged += HandleFileServiceChange;
@@ -79,10 +74,14 @@ namespace MonoDevelop.SourceEditor
static void HandleFileServiceChange (object sender, FileEventArgs e)
{
// The Ide.Document generates a file service changed event this needs to be skipped.
- if (!TypeSystemService.TrackFileChanges || SuspendFileWatch)
+ if (!TypeSystemService.TrackFileChanges)
return;
bool foundOneChange = false;
foreach (var file in e) {
+ if (skipFiles.Contains (file.FileName)) {
+ skipFiles.Remove (file.FileName);
+ continue;
+ }
foreach (var view in openFiles) {
if (SkipView (view) || !string.Equals (view.ContentName, file.FileName, FilePath.PathComparison))
continue;
@@ -116,14 +115,16 @@ namespace MonoDevelop.SourceEditor
static void OnFileChanged (object sender, FileSystemEventArgs e)
{
- if (e.ChangeType == WatcherChangeTypes.Changed || e.ChangeType == WatcherChangeTypes.Created)
+ if (e.ChangeType == WatcherChangeTypes.Changed || e.ChangeType == WatcherChangeTypes.Created)
CheckFileChange (e.FullPath);
}
static void CheckFileChange (string fileName)
{
- if (SuspendFileWatch)
+ if (skipFiles.Contains (fileName)) {
+ skipFiles.Remove (fileName);
return;
+ }
var changedViews = new List<SourceEditorView> ();
foreach (var view in openFiles) {
@@ -195,7 +196,7 @@ namespace MonoDevelop.SourceEditor
foreach (var view in openFiles) {
if (SkipView (view) || !view.SourceEditorWidget.HasIncorrectEolMarker)
continue;
-
+
view.SourceEditorWidget.ConvertLineEndings ();
view.SourceEditorWidget.RemoveMessageBar ();
view.WorkbenchWindow.ShowNotification = false;
@@ -224,9 +225,16 @@ namespace MonoDevelop.SourceEditor
foreach (var view in openFiles) {
if (SkipView (view) || !view.SourceEditorWidget.HasIncorrectEolMarker)
continue;
- view.SourceEditorWidget.UpdateEolMarkerMessage(multiple);
+ view.SourceEditorWidget.UpdateEolMarkerMessage (multiple);
}
}
+
+ static List<string> skipFiles = new List<string> ();
+ internal static void SkipNextChange (string fileName)
+ {
+ if (!skipFiles.Contains (fileName))
+ skipFiles.Add (fileName);
+ }
#endregion
}
-}
+}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
index d3ee4cd3cf..99f044b508 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
@@ -669,7 +669,7 @@ namespace MonoDevelop.SourceEditor
}
}
- FileRegistry.SuspendFileWatch = true;
+ FileRegistry.SkipNextChange (fileName);
try {
object attributes = null;
if (File.Exists (fileName)) {
@@ -739,11 +739,8 @@ namespace MonoDevelop.SourceEditor
} catch (UnauthorizedAccessException e) {
LoggingService.LogError ("Error while saving file", e);
MessageService.ShowError (GettextCatalog.GetString ("Can't save file - access denied"), e.Message);
- } finally {
- FileService.NotifyFileChanged (fileName);
- FileRegistry.SuspendFileWatch = false;
}
-
+
// if (encoding != null)
// se.Buffer.SourceEncoding = encoding;
// TextFileService.FireCommitCountChanges (this);
@@ -2990,28 +2987,75 @@ namespace MonoDevelop.SourceEditor
}
}
- void ITextEditorImpl.UpdateBraceMatchingResult (BraceMatchingResult? result)
+
+ class BracketMatcherTextMarker : TextSegmentMarker
{
- var oldOffset = widget.TextEditor.TextViewMargin.HighlightBracketOffset;
+ public BracketMatcherTextMarker (int offset, int length) : base (offset, length)
+ {
+ }
- if (result.HasValue) {
- if (result.Value.IsCaretInLeft) {
- widget.TextEditor.TextViewMargin.HighlightBracketOffset = result.Value.RightSegment.Offset;
- } else {
- widget.TextEditor.TextViewMargin.HighlightBracketOffset = result.Value.LeftSegment.Offset;
+ public override void DrawBackground (MonoTextEditor editor, Cairo.Context cr, LineMetrics metrics, int startOffset, int endOffset)
+ {
+ double fromX, toX;
+ GetLineDrawingPosition (metrics, startOffset, out fromX, out toX);
+
+ fromX = Math.Max (fromX, editor.TextViewMargin.XOffset);
+ toX = Math.Max (toX, editor.TextViewMargin.XOffset);
+ if (fromX < toX) {
+ var bracketMatch = new Cairo.Rectangle (fromX + 0.5, metrics.LineYRenderStartPosition + 0.5, toX - fromX - 1, editor.LineHeight - 2);
+ if (editor.TextViewMargin.BackgroundRenderer == null) {
+ cr.SetSourceColor (editor.ColorStyle.BraceMatchingRectangle.Color);
+ cr.Rectangle (bracketMatch);
+ cr.FillPreserve ();
+ cr.SetSourceColor (editor.ColorStyle.BraceMatchingRectangle.SecondColor);
+ cr.Stroke ();
+ }
}
- } else {
- widget.TextEditor.TextViewMargin.HighlightBracketOffset = -1;
}
- if (oldOffset >= 0) {
- widget.Document.CommitLineUpdate (widget.TextEditor.OffsetToLineNumber (oldOffset));
+ void GetLineDrawingPosition (LineMetrics metrics, int startOffset, out double fromX, out double toX)
+ {
+ var startXPos = metrics.TextRenderStartPosition;
+ var endXPos = metrics.TextRenderEndPosition;
+ int start = this.Offset;
+ int end = this.EndOffset;
+
+ uint curIndex = 0, byteIndex = 0;
+ TextViewMargin.TranslateToUTF8Index (metrics.Layout.LineChars, (uint)(start - startOffset), ref curIndex, ref byteIndex);
+
+ int x_pos = metrics.Layout.Layout.IndexToPos ((int)byteIndex).X;
+
+ fromX = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
+
+ TextViewMargin.TranslateToUTF8Index (metrics.Layout.LineChars, (uint)(end - startOffset), ref curIndex, ref byteIndex);
+ x_pos = metrics.Layout.Layout.IndexToPos ((int)byteIndex).X;
+
+ toX = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
}
- if (widget.TextEditor.TextViewMargin.HighlightBracketOffset >= 0) {
- widget.Document.CommitLineUpdate (widget.TextEditor.OffsetToLineNumber (widget.TextEditor.TextViewMargin.HighlightBracketOffset));
+ }
+
+ List<BracketMatcherTextMarker> bracketMarkers = new List<BracketMatcherTextMarker> ();
+
+ void ITextEditorImpl.UpdateBraceMatchingResult (BraceMatchingResult? result)
+ {
+ if (result.HasValue) {
+ if (bracketMarkers.Count > 0 && result.Value.LeftSegment.Offset == bracketMarkers [0].Offset)
+ return;
+ ClearBracketMarkers ();
+ bracketMarkers.Add (new BracketMatcherTextMarker (result.Value.LeftSegment.Offset, result.Value.LeftSegment.Length));
+ bracketMarkers.Add (new BracketMatcherTextMarker (result.Value.RightSegment.Offset, result.Value.RightSegment.Length));
+ bracketMarkers.ForEach (marker => widget.TextEditor.Document.AddMarker (marker));
+ } else {
+ ClearBracketMarkers ();
}
}
+ void ClearBracketMarkers ()
+ {
+ bracketMarkers.ForEach (marker => widget.TextEditor.Document.RemoveMarker (marker));
+ bracketMarkers.Clear ();
+ }
+
public event EventHandler<MonoDevelop.Ide.Editor.LineEventArgs> LineChanged;
public event EventHandler<MonoDevelop.Ide.Editor.LineEventArgs> LineInserted;
@@ -3034,7 +3078,7 @@ namespace MonoDevelop.SourceEditor
public double ZoomLevel {
get { return TextEditor != null && TextEditor.Options != null ? TextEditor.Options.Zoom : 1d; }
- set { if (TextEditor != null && TextEditor.Options != null) TextEditor.Options.Zoom = value; }
+ set { if (TextEditor != null && TextEditor.Options != null) TextEditor.Options.Zoom = value; }
}
event EventHandler ITextEditorImpl.ZoomLevelChanged {
add {
@@ -3195,7 +3239,7 @@ namespace MonoDevelop.SourceEditor
}
void IEditorActionHost.MoveNextSubWord ()
- {
+ {
TextEditor.RunAction (SelectionActions.MoveNextSubword);
}
@@ -3292,8 +3336,8 @@ namespace MonoDevelop.SourceEditor
}
#endregion
-
-
+
+
#region ISegmentMarkerHost implementation
ITextSegmentMarker ITextMarkerFactory.CreateUsageMarker (MonoDevelop.Ide.Editor.TextEditor editor, Usage usage)
@@ -3379,7 +3423,7 @@ namespace MonoDevelop.SourceEditor
void GotoPgDown ()
{
widget.QuickTaskStrip.GotoPgDown ();
- }
+ }
[CommandUpdateHandler (ScrollbarCommand.ShowTasks)]
void UpdateShowMap (CommandInfo info)
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
index 53adc8eed6..9dfe1d2b70 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
@@ -1184,7 +1184,7 @@ namespace MonoDevelop.SourceEditor
SetReplacePatternToSelection ();
}
- void ShowSearchReplaceWidget (bool replace)
+ void ShowSearchReplaceWidget (bool replace, bool switchFocus = true)
{
if (searchAndReplaceWidget == null) {
KillWidgets ();
@@ -1219,7 +1219,8 @@ namespace MonoDevelop.SourceEditor
this.FindNext ();
}
}
- searchAndReplaceWidget.Focus ();
+ if (switchFocus)
+ searchAndReplaceWidget.Focus ();
}
public void ShowGotoLineNumberWidget ()
@@ -1251,6 +1252,8 @@ namespace MonoDevelop.SourceEditor
public SearchResult FindNext (bool focus)
{
+ if (searchAndReplaceWidget == null)
+ ShowSearchReplaceWidget (false, false);
return SearchAndReplaceWidget.FindNext (TextEditor);
}
@@ -1261,6 +1264,8 @@ namespace MonoDevelop.SourceEditor
public SearchResult FindPrevious (bool focus)
{
+ if (searchAndReplaceWidget == null)
+ ShowSearchReplaceWidget (false, false);
return SearchAndReplaceWidget.FindPrevious (TextEditor);
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs
index 6ca9f1588a..7f82fe371f 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/DebugTextMarker.cs
@@ -70,10 +70,11 @@ namespace MonoDevelop.SourceEditor
class DebugTextMarker : TextSegmentMarker, IChunkMarker
{
- readonly AmbientColor background;
- readonly ChunkStyle forground;
+ readonly Func<MonoTextEditor, AmbientColor> background;
+ readonly Func<MonoTextEditor, ChunkStyle> forground;
+ MonoTextEditor editor;
- public DebugTextMarker (int offset, int length, AmbientColor background, ChunkStyle forground = null)
+ public DebugTextMarker (int offset, int length, Func<MonoTextEditor, AmbientColor> background, Func<MonoTextEditor, ChunkStyle> forground = null)
: base (offset, length)
{
this.forground = forground;
@@ -82,7 +83,7 @@ namespace MonoDevelop.SourceEditor
public override void DrawBackground (MonoTextEditor editor, Cairo.Context cr, LineMetrics metrics, int startOffset, int endOffset)
{
-
+ this.editor = editor;
int markerStart = base.Offset;
int markerEnd = base.EndOffset;
@@ -117,12 +118,12 @@ namespace MonoDevelop.SourceEditor
@from = Math.Max (@from, editor.TextViewMargin.XOffset);
to = Math.Max (to, editor.TextViewMargin.XOffset);
if (@from < to) {
- cr.SetSourceColor (background.Color);
+ cr.SetSourceColor (background(editor).Color);
cr.RoundedRectangle (@from + 2.5, y + 0.5, to - @from, editor.LineHeight - 1, 2); // 2.5 to make space for the column guideline
cr.FillPreserve ();
- if (background.HasBorderColor) {
- cr.SetSourceColor (background.BorderColor);
+ if (background(editor).HasBorderColor) {
+ cr.SetSourceColor (background(editor).BorderColor);
cr.Stroke ();
}
}
@@ -134,8 +135,8 @@ namespace MonoDevelop.SourceEditor
return null;
var style = new ChunkStyle (baseStyle);
- if (forground != null) {
- style.Foreground = forground.Foreground;
+ if (forground != null && editor != null) {
+ style.Foreground = forground(editor).Foreground;
}
return style;
}
@@ -167,14 +168,14 @@ namespace MonoDevelop.SourceEditor
void IChunkMarker.ChangeForeColor (MonoTextEditor editor, Chunk chunk, ref Cairo.Color color)
{
- if (forground == null) {
+ if (forground == null || editor == null) {
return;
}
int markerStart = Segment.Offset;
int markerEnd = Segment.EndOffset;
if (chunk.EndOffset <= markerStart || markerEnd <= chunk.Offset)
return;
- color = forground.Foreground;
+ color = forground(editor).Foreground;
}
#endregion
@@ -210,7 +211,7 @@ namespace MonoDevelop.SourceEditor
public BreakpointTextMarker (MonoTextEditor editor, int offset, int length, bool isTracepoint)
{
IconMarker = new DebugIconMarker (isTracepoint ? tracepoint : breakpoint);
- TextMarker = new DebugTextMarker (offset, length, editor.ColorStyle.BreakpointMarker, editor.ColorStyle.BreakpointText);
+ TextMarker = new DebugTextMarker (offset, length, e => e.ColorStyle.BreakpointMarker, e => e.ColorStyle.BreakpointText);
}
}
@@ -222,7 +223,7 @@ namespace MonoDevelop.SourceEditor
public DisabledBreakpointTextMarker (MonoTextEditor editor, int offset, int length, bool isTracepoint)
{
IconMarker = new DebugIconMarker (isTracepoint ? tracepoint : breakpoint);
- TextMarker = new DebugTextMarker (offset, length, editor.ColorStyle.BreakpointMarkerDisabled);
+ TextMarker = new DebugTextMarker (offset, length, e => e.ColorStyle.BreakpointMarkerDisabled);
}
}
@@ -234,7 +235,7 @@ namespace MonoDevelop.SourceEditor
public InvalidBreakpointTextMarker (MonoTextEditor editor, int offset, int length, bool isTracepoint)
{
IconMarker = new DebugIconMarker (isTracepoint ? tracepoint : breakpoint);
- TextMarker = new DebugTextMarker (offset, length, editor.ColorStyle.BreakpointMarkerInvalid);
+ TextMarker = new DebugTextMarker (offset, length, e => e.ColorStyle.BreakpointMarkerInvalid);
}
}
@@ -245,7 +246,7 @@ namespace MonoDevelop.SourceEditor
public DebugStackLineTextMarker (MonoTextEditor editor, int offset, int length)
{
IconMarker = new DebugIconMarker (stackLine);
- TextMarker = new DebugTextMarker (offset, length, editor.ColorStyle.DebuggerStackLineMarker, editor.ColorStyle.DebuggerStackLine);
+ TextMarker = new DebugTextMarker (offset, length, e => e.ColorStyle.DebuggerStackLineMarker, e => e.ColorStyle.DebuggerStackLine);
}
}
@@ -256,7 +257,7 @@ namespace MonoDevelop.SourceEditor
public CurrentDebugLineTextMarker (MonoTextEditor editor, int offset, int length)
{
IconMarker = new DebugIconMarker (currentLine);
- TextMarker = new DebugTextMarker (offset, length, editor.ColorStyle.DebuggerCurrentLineMarker, editor.ColorStyle.DebuggerCurrentLine);
+ TextMarker = new DebugTextMarker (offset, length, e => e.ColorStyle.DebuggerCurrentLineMarker, e => e.ColorStyle.DebuggerCurrentLine);
}
public bool IsVisible { get { return IconMarker.IsVisible; } set { IconMarker.IsVisible = value; } }
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Commands/WebReferenceCommandHandler.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Commands/WebReferenceCommandHandler.cs
index 6193f36310..c45f4968fe 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Commands/WebReferenceCommandHandler.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.Commands/WebReferenceCommandHandler.cs
@@ -15,13 +15,11 @@ namespace MonoDevelop.WebReferences.Commands
/// <summary>Defines the properties and methods for the WebReferenceCommandHandler class.</summary>
public class WebReferenceCommandHandler : NodeCommandHandler
{
- StatusBarContext UpdateReferenceContext {
- get; set;
- }
-
+ bool updatingReferences;
+
/// <summary>Execute the command for adding a new web reference to a project.</summary>
[CommandHandler (WebReferenceCommands.Add)]
- public void NewWebReference()
+ public async void NewWebReference()
{
// Get the project and project folder
var project = CurrentNode.GetParentDataItem (typeof(DotNetProject), true) as DotNetProject;
@@ -47,8 +45,8 @@ namespace MonoDevelop.WebReferences.Commands
if (MessageService.RunCustomDialog (dialog) != (int)Gtk.ResponseType.Ok)
return;
- dialog.SelectedService.GenerateFiles (project, dialog.Namespace, dialog.ReferenceName);
- IdeApp.ProjectOperations.SaveAsync(project);
+ await dialog.SelectedService.GenerateFiles (project, dialog.Namespace, dialog.ReferenceName);
+ await IdeApp.ProjectOperations.SaveAsync(project);
} catch (Exception exception) {
MessageService.ShowError ("The web reference could not be added", exception);
} finally {
@@ -61,72 +59,57 @@ namespace MonoDevelop.WebReferences.Commands
[CommandUpdateHandler (WebReferenceCommands.UpdateAll)]
void CanUpdateWebReferences (CommandInfo ci)
{
- // This does not appear to work.
- ci.Enabled = UpdateReferenceContext == null;
+ ci.Enabled = !updatingReferences;
}
/// <summary>Execute the command for updating a web reference in a project.</summary>
[CommandHandler (WebReferenceCommands.Update)]
- public void Update()
+ public async void Update()
{
- UpdateReferences (new [] { (WebReferenceItem) CurrentNode.DataItem });
+ await UpdateReferences (new [] { (WebReferenceItem) CurrentNode.DataItem });
}
/// <summary>Execute the command for updating all web reference in a project.</summary>
[CommandHandler (WebReferenceCommands.UpdateAll)]
- public void UpdateAll()
+ public async void UpdateAll()
{
var folder = (WebReferenceFolder)CurrentNode.DataItem;
DotNetProject project = folder.Project;
if (folder.IsWCF)
- UpdateReferences (WebReferencesService.GetWebReferenceItemsWCF (project).ToArray ());
+ await UpdateReferences (WebReferencesService.GetWebReferenceItemsWCF (project).ToArray ());
else
- UpdateReferences (WebReferencesService.GetWebReferenceItemsWS (project).ToArray ());
+ await UpdateReferences (WebReferencesService.GetWebReferenceItemsWS (project).ToArray ());
}
- void UpdateReferences (IList<WebReferenceItem> items)
+ async Task UpdateReferences (IList<WebReferenceItem> items)
{
+ if (updatingReferences)
+ return;
try {
- UpdateReferenceContext = IdeApp.Workbench.StatusBar.CreateContext ();
- UpdateReferenceContext.BeginProgress (GettextCatalog.GetPluralString ("Updating web reference", "Updating web references", items.Count));
-
- Task.Run (() => {
- for (int i = 0; i < items.Count; i ++) {
- Runtime.RunInMainThread (() => UpdateReferenceContext.SetProgressFraction (Math.Max (0.1, (double)i / items.Count)));
+ updatingReferences = true;
+ using (var monitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor (GettextCatalog.GetPluralString ("Updating web reference", "Updating web references", items.Count), MonoDevelop.Ide.Gui.Stock.StatusDownload, true)) {
+ monitor.BeginTask (GettextCatalog.GetPluralString ("Updating web reference", "Updating web references", items.Count), items.Count);
+
+ for (int i = 0; i < items.Count; i++) {
try {
- items [i].Update();
+ await items [i].Update ();
} catch (Exception ex) {
- Runtime.RunInMainThread (() => {
- MessageService.ShowError (GettextCatalog.GetString ("Failed to update Web Reference '{0}'", items [i].Name), ex);
- DisposeUpdateContext ();
- }).Wait ();
+ MessageService.ShowError (GettextCatalog.GetString ("Failed to update Web Reference '{0}'", items [i].Name), ex);
return;
}
+ monitor.Step ();
}
-
- Runtime.RunInMainThread (() => {
- // Make sure that we save all relevant projects, there should only be 1 though
- foreach (var project in items.Select (i =>i.Project).Distinct ())
- IdeApp.ProjectOperations.SaveAsync (project);
-
- IdeApp.Workbench.StatusBar.ShowMessage(GettextCatalog.GetPluralString ("Updated Web Reference {0}", "Updated Web References", items.Count, items[0].Name));
- DisposeUpdateContext ();
- });
- });
- } catch {
- DisposeUpdateContext ();
- throw;
+
+ // Make sure that we save all relevant projects, there should only be 1 though
+ foreach (var project in items.Select (i => i.Project).Distinct ())
+ await IdeApp.ProjectOperations.SaveAsync (project);
+ }
+ IdeApp.Workbench.StatusBar.ShowMessage (GettextCatalog.GetPluralString ("Updated Web Reference {0}", "Updated Web References", items.Count, items [0].Name));
+ } finally {
+ updatingReferences = false;
}
}
- void DisposeUpdateContext ()
- {
- if (UpdateReferenceContext != null) {
- UpdateReferenceContext.Dispose ();
- UpdateReferenceContext = null;
- }
- }
-
/// <summary>Execute the command for removing a web reference from a project.</summary>
[CommandHandler (WebReferenceCommands.Delete)]
public void Delete()
@@ -168,7 +151,7 @@ namespace MonoDevelop.WebReferences.Commands
/// <summary>Execute the command for configuring a web reference in a project.</summary>
[CommandHandler (WebReferenceCommands.Configure)]
- public void Configure ()
+ public async void Configure ()
{
var item = (WebReferenceItem) CurrentNode.DataItem;
@@ -196,7 +179,7 @@ namespace MonoDevelop.WebReferences.Commands
return;
refgroup.Save (item.MapFile.FilePath);
- UpdateReferences (new [] { item });
+ await UpdateReferences (new [] { item });
} catch (Exception exception) {
LoggingService.LogInternalError (exception);
} finally {
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
index ea43a06504..383470d741 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
@@ -40,6 +40,7 @@ using System.Xml.Schema;
using System.Text;
using Mono.ServiceContractTool;
using MonoDevelop.Core;
+using System.Threading.Tasks;
namespace MonoDevelop.WebReferences.WCF
{
@@ -94,7 +95,7 @@ namespace MonoDevelop.WebReferences.WCF
}
}
- protected override string GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath)
+ protected override async Task<string> GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath)
{
if (!dotNetProject.Items.GetAll<WCFMetadata> ().Any ()) {
var met = new WCFMetadata (basePath.ParentDirectory);
@@ -104,27 +105,31 @@ namespace MonoDevelop.WebReferences.WCF
WCFMetadataStorage metStor = dotNetProject.Items.GetAll<WCFMetadataStorage> ().FirstOrDefault (m => m.Path.CanonicalPath == basePath);
if (metStor == null)
dotNetProject.Items.Add (new WCFMetadataStorage (basePath));
-
+
string file = Path.Combine (basePath, "Reference.svcmap");
- if (protocol != null) {
- protocol.ResolveAll ();
- protocol.WriteAll (basePath, "Reference.svcmap");
- refGroup = ConvertMapFile (file);
- } else {
- // TODO
- var map = new ReferenceGroup ();
- map.ClientOptions = defaultOptions;
- map.Save (file);
- map.ID = Guid.NewGuid ().ToString ();
- refGroup = map;
- }
+
+ await Task.Run (() => {
+ if (protocol != null) {
+ protocol.ResolveAll ();
+ protocol.WriteAll (basePath, "Reference.svcmap");
+ refGroup = ConvertMapFile (file);
+ } else {
+ // TODO
+ var map = new ReferenceGroup ();
+ map.ClientOptions = defaultOptions;
+ map.Save (file);
+ map.ID = Guid.NewGuid ().ToString ();
+ refGroup = map;
+ }
+ });
+
foreach (MetadataFile mfile in refGroup.Metadata)
dotNetProject.AddFile (new FilePath (mfile.FileName).ToAbsolute (basePath), BuildAction.None);
return file;
}
- public override void Update ()
+ public override async Task Update ()
{
ReferenceGroup resfile = ReferenceGroup.Read (Item.MapFile.FilePath);
if (resfile.MetadataSources.Count == 0)
@@ -136,7 +141,7 @@ namespace MonoDevelop.WebReferences.WCF
metadata = wref.metadata;
protocol = wref.protocol;
- GenerateFiles (Item.Project, Item.Project.DefaultNamespace, Item.Name);
+ await GenerateFiles (Item.Project, Item.Project.DefaultNamespace, Item.Name);
}
public override IEnumerable<string> GetAssemblyReferences ()
@@ -147,72 +152,73 @@ namespace MonoDevelop.WebReferences.WCF
yield return "System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
}
- protected override string CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName)
+ protected override Task<string> CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName)
{
- var ccu = new CodeCompileUnit ();
- var cns = new CodeNamespace (proxyNamespace);
- ccu.Namespaces.Add (cns);
-
+ CodeDomProvider code_provider = GetProvider (dotNetProject);
+
bool targetMoonlight = dotNetProject.TargetFramework.Id.Identifier == ("Silverlight");
bool targetMonoTouch = dotNetProject.TargetFramework.Id.Identifier == ("MonoTouch");
bool targetMonoDroid = dotNetProject.TargetFramework.Id.Identifier == ("MonoDroid");
-
- bool targetCoreClr = targetMoonlight || targetMonoDroid || targetMonoTouch;
- bool generateSyncMethods = targetMonoDroid | targetMonoTouch;
-
- var generator = new ServiceContractGenerator (ccu);
- generator.Options = ServiceContractGenerationOptions.ChannelInterface | ServiceContractGenerationOptions.ClientClass;
- if (refGroup.ClientOptions.GenerateAsynchronousMethods || targetCoreClr)
- generator.Options |= ServiceContractGenerationOptions.AsynchronousMethods;
- if (refGroup.ClientOptions.GenerateEventBasedAsynchronousMethods)
- generator.Options |= ServiceContractGenerationOptions.EventBasedAsynchronousMethods;
+
+ return Task.Run (() => {
+ var ccu = new CodeCompileUnit ();
+ var cns = new CodeNamespace (proxyNamespace);
+ ccu.Namespaces.Add (cns);
+
+ bool targetCoreClr = targetMoonlight || targetMonoDroid || targetMonoTouch;
+ bool generateSyncMethods = targetMonoDroid | targetMonoTouch;
+
+ var generator = new ServiceContractGenerator (ccu);
+ generator.Options = ServiceContractGenerationOptions.ChannelInterface | ServiceContractGenerationOptions.ClientClass;
+ if (refGroup.ClientOptions.GenerateAsynchronousMethods || targetCoreClr)
+ generator.Options |= ServiceContractGenerationOptions.AsynchronousMethods;
+ if (refGroup.ClientOptions.GenerateEventBasedAsynchronousMethods)
+ generator.Options |= ServiceContractGenerationOptions.EventBasedAsynchronousMethods;
#if NET_4_5
if (refGroup.ClientOptions.GenerateTaskBasedAsynchronousMethod)
generator.Options |= ServiceContractGenerationOptions.TaskBasedAsynchronousMethod;
#endif
- if (refGroup.ClientOptions.GenerateInternalTypes)
- generator.Options |= ServiceContractGenerationOptions.InternalTypes;
- if (refGroup.ClientOptions.GenerateMessageContracts)
- generator.Options |= ServiceContractGenerationOptions.TypedMessages;
-// if (targetMoonlight || targetMonoTouch)
-// generator.Options |= ServiceContractGenerationOptions.EventBasedAsynchronousMethods;
-
- MetadataSet mset;
- mset = protocol != null ? ToMetadataSet (protocol) : metadata;
+ if (refGroup.ClientOptions.GenerateInternalTypes)
+ generator.Options |= ServiceContractGenerationOptions.InternalTypes;
+ if (refGroup.ClientOptions.GenerateMessageContracts)
+ generator.Options |= ServiceContractGenerationOptions.TypedMessages;
+ // if (targetMoonlight || targetMonoTouch)
+ // generator.Options |= ServiceContractGenerationOptions.EventBasedAsynchronousMethods;
- CodeDomProvider code_provider = GetProvider (dotNetProject);
-
- var list = new List<IWsdlImportExtension> ();
- list.Add (new TransportBindingElementImporter ());
- list.Add (new XmlSerializerMessageContractImporter ());
-
- var importer = new WsdlImporter (mset);
- try {
- ConfigureImporter (importer);
- } catch {
- }
+ MetadataSet mset;
+ mset = protocol != null ? ToMetadataSet (protocol) : metadata;
- Collection<ContractDescription> contracts = importer.ImportAllContracts ();
-
- foreach (ContractDescription cd in contracts) {
- cd.Namespace = proxyNamespace;
- if (targetCoreClr) {
- var moonctx = new MoonlightChannelBaseContext ();
- cd.Behaviors.Add (new MoonlightChannelBaseContractExtension (moonctx, generateSyncMethods));
- foreach (var od in cd.Operations)
- od.Behaviors.Add (new MoonlightChannelBaseOperationExtension (moonctx, generateSyncMethods));
- generator.GenerateServiceContractType (cd);
- moonctx.Fixup ();
+ var list = new List<IWsdlImportExtension> ();
+ list.Add (new TransportBindingElementImporter ());
+ list.Add (new XmlSerializerMessageContractImporter ());
+
+ var importer = new WsdlImporter (mset);
+ try {
+ ConfigureImporter (importer);
+ } catch {
}
- else
- generator.GenerateServiceContractType (cd);
- }
-
- string fileSpec = Path.Combine (basePath, referenceName + "." + code_provider.FileExtension);
- using (TextWriter w = File.CreateText (fileSpec)) {
- code_provider.GenerateCodeFromCompileUnit (ccu, w, null);
- }
- return fileSpec;
+
+ Collection<ContractDescription> contracts = importer.ImportAllContracts ();
+
+ foreach (ContractDescription cd in contracts) {
+ cd.Namespace = proxyNamespace;
+ if (targetCoreClr) {
+ var moonctx = new MoonlightChannelBaseContext ();
+ cd.Behaviors.Add (new MoonlightChannelBaseContractExtension (moonctx, generateSyncMethods));
+ foreach (var od in cd.Operations)
+ od.Behaviors.Add (new MoonlightChannelBaseOperationExtension (moonctx, generateSyncMethods));
+ generator.GenerateServiceContractType (cd);
+ moonctx.Fixup ();
+ } else
+ generator.GenerateServiceContractType (cd);
+ }
+
+ string fileSpec = Path.Combine (basePath, referenceName + "." + code_provider.FileExtension);
+ using (TextWriter w = File.CreateText (fileSpec)) {
+ code_provider.GenerateCodeFromCompileUnit (ccu, w, null);
+ }
+ return fileSpec;
+ });
}
void ConfigureImporter (WsdlImporter importer)
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WS/WebServiceDiscoveryResultWS.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WS/WebServiceDiscoveryResultWS.cs
index 4386c278aa..178a85908a 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WS/WebServiceDiscoveryResultWS.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WS/WebServiceDiscoveryResultWS.cs
@@ -35,6 +35,7 @@ using System.CodeDom.Compiler;
using System.CodeDom;
using MonoDevelop.Core;
using WebReferencesDir = MonoDevelop.WebReferences.WS.WebReferences;
+using System.Threading.Tasks;
namespace MonoDevelop.WebReferences.WS
{
@@ -78,43 +79,45 @@ namespace MonoDevelop.WebReferences.WS
}
}
- protected override string GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath)
+ protected override async Task<string> GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath)
{
if (!dotNetProject.Items.GetAll<WebReferencesDir> ().Any ()) {
var met = new WebReferencesDir (basePath.ParentDirectory);
dotNetProject.Items.Add (met);
}
-
- WebReferenceUrl wru = dotNetProject.Items.GetAll<WebReferenceUrl> ().FirstOrDefault (m => m.RelPath.CanonicalPath == basePath);
- if (wru == null) {
- wru = new WebReferenceUrl (protocol.Url);
- wru.RelPath = basePath;
- dotNetProject.Items.Add (wru);
- }
-
- protocol.ResolveAll ();
- DiscoveryClientResultCollection files = protocol.WriteAll (basePath, "Reference.map");
+
+ DiscoveryClientResultCollection files = await Task.Run (() => {
+ WebReferenceUrl wru = dotNetProject.Items.GetAll<WebReferenceUrl> ().FirstOrDefault (m => m.RelPath.CanonicalPath == basePath);
+ if (wru == null) {
+ wru = new WebReferenceUrl (protocol.Url);
+ wru.RelPath = basePath;
+ dotNetProject.Items.Add (wru);
+ }
+
+ protocol.ResolveAll ();
+ return protocol.WriteAll (basePath, "Reference.map");
+ });
foreach (DiscoveryClientResult dr in files)
- dotNetProject.AddFile (new FilePath (dr.Filename).ToAbsolute (basePath), BuildAction.None);
+ dotNetProject.AddFile (new FilePath (Path.GetFileName (dr.Filename)).ToAbsolute (basePath), BuildAction.None);
return Path.Combine (basePath, "Reference.map");
}
- public override void Update ()
+ public override async Task Update ()
{
WebReferenceUrl wru = Item.Project.Items.GetAll<WebReferenceUrl> ().FirstOrDefault (m => m.RelPath.CanonicalPath == Item.BasePath);
if (wru == null)
return;
-
- var wref = (WebServiceDiscoveryResultWS) WebReferencesService.WsEngine.Discover (wru.UpdateFromURL);
+
+ var wref = await Task.Run (() => (WebServiceDiscoveryResultWS)WebReferencesService.WsEngine.Discover (wru.UpdateFromURL));
if (wref == null)
return;
protocol = wref.protocol;
// Re-generate the proxy and map files
- GenerateFiles (Item.Project, Item.Project.DefaultNamespace, Item.Name);
+ await GenerateFiles (Item.Project, Item.Project.DefaultNamespace, Item.Name);
}
public override System.Collections.Generic.IEnumerable<string> GetAssemblyReferences ()
@@ -124,45 +127,48 @@ namespace MonoDevelop.WebReferences.WS
yield return "System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
}
- protected override string CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName)
+ protected override Task<string> CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName)
{
// Setup the proxy namespace and compile unit
CodeDomProvider codeProv = GetProvider (dotNetProject);
- var codeNamespace = new CodeNamespace (proxyNamespace);
- var urlConstructor = new CodeConstructor ();
- var codeUnit = new CodeCompileUnit ();
- codeUnit.Namespaces.Add (codeNamespace);
-
- // Setup the importer and import the service description into the code unit
- ServiceDescriptionImporter importer = Library.ReadServiceDescriptionImporter (protocol);
- importer.CodeGenerationOptions = CodeGenerationOptions.GenerateNewAsync;
- importer.Import (codeNamespace, codeUnit);
-
- // Add the new Constructor with Url as a paremeter
- // Search for the class which inherit SoapHttpClientProtocol (Which is the Service Class)
- foreach (CodeTypeDeclaration declarationType in codeUnit.Namespaces[0].Types)
- if (declarationType.IsClass)
- if (declarationType.BaseTypes.Count > 0)
- // Is a Service Class
- if (declarationType.BaseTypes [0].BaseType.IndexOf ("SoapHttpClientProtocol", System.StringComparison.Ordinal) > -1) {
- // Create new public constructor with the Url as parameter
- urlConstructor.Attributes = MemberAttributes.Public;
- urlConstructor.Parameters.Add (new CodeParameterDeclarationExpression ("System.String", "url"));
- urlConstructor.Statements.Add (new CodeAssignStatement (
- new CodePropertyReferenceExpression (new CodeThisReferenceExpression(),
- "Url"),
- new CodeVariableReferenceExpression ("url")));
- declarationType.Members.Add (urlConstructor);
- }
-
- // Generate the code and save the file
- string fileSpec = Path.Combine (basePath, dotNetProject.LanguageBinding.GetFileName (referenceName));
- var writer = new StreamWriter (fileSpec);
- codeProv.GenerateCodeFromCompileUnit (codeUnit, writer, new CodeGeneratorOptions ());
-
- writer.Close ();
-
- return fileSpec;
+
+ return Task.Run (() => {
+ var codeNamespace = new CodeNamespace (proxyNamespace);
+ var urlConstructor = new CodeConstructor ();
+ var codeUnit = new CodeCompileUnit ();
+ codeUnit.Namespaces.Add (codeNamespace);
+
+ // Setup the importer and import the service description into the code unit
+ ServiceDescriptionImporter importer = Library.ReadServiceDescriptionImporter (protocol);
+ importer.CodeGenerationOptions = CodeGenerationOptions.GenerateNewAsync;
+ importer.Import (codeNamespace, codeUnit);
+
+ // Add the new Constructor with Url as a paremeter
+ // Search for the class which inherit SoapHttpClientProtocol (Which is the Service Class)
+ foreach (CodeTypeDeclaration declarationType in codeUnit.Namespaces [0].Types)
+ if (declarationType.IsClass)
+ if (declarationType.BaseTypes.Count > 0)
+ // Is a Service Class
+ if (declarationType.BaseTypes [0].BaseType.IndexOf ("SoapHttpClientProtocol", System.StringComparison.Ordinal) > -1) {
+ // Create new public constructor with the Url as parameter
+ urlConstructor.Attributes = MemberAttributes.Public;
+ urlConstructor.Parameters.Add (new CodeParameterDeclarationExpression ("System.String", "url"));
+ urlConstructor.Statements.Add (new CodeAssignStatement (
+ new CodePropertyReferenceExpression (new CodeThisReferenceExpression (),
+ "Url"),
+ new CodeVariableReferenceExpression ("url")));
+ declarationType.Members.Add (urlConstructor);
+ }
+
+ // Generate the code and save the file
+ string fileSpec = Path.Combine (basePath, dotNetProject.LanguageBinding.GetFileName (referenceName));
+ var writer = new StreamWriter (fileSpec);
+ codeProv.GenerateCodeFromCompileUnit (codeUnit, writer, new CodeGeneratorOptions ());
+
+ writer.Close ();
+
+ return fileSpec;
+ });
}
public override string GetServiceURL ()
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/DiscoveryProtocol.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/DiscoveryProtocol.cs
index bfa1ad18de..7d557d34fb 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/DiscoveryProtocol.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/DiscoveryProtocol.cs
@@ -45,7 +45,7 @@ namespace MonoDevelop.WebReferences
var dr = (DiscoveryReference) Activator.CreateInstance(type);
dr.Url = dcr.Url;
- var fs = new FileStream (Path.Combine(basePath, dcr.Filename), FileMode.Open, FileAccess.Read);
+ var fs = new FileStream (Path.Combine(basePath, Path.GetFileName (dcr.Filename)), FileMode.Open, FileAccess.Read);
Documents.Add (dr.Url, dr.ReadDocument (fs));
fs.Close ();
References.Add (dr.Url, dr);
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebReferenceItem.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebReferenceItem.cs
index 175ceec2a0..2c71248e96 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebReferenceItem.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebReferenceItem.cs
@@ -1,6 +1,6 @@
using MonoDevelop.Projects;
using MonoDevelop.Core;
-
+using System.Threading.Tasks;
namespace MonoDevelop.WebReferences
{
@@ -38,10 +38,10 @@ namespace MonoDevelop.WebReferences
}
/// <summary>Update the web reference item by using the map file.</summary>
- public void Update()
+ public Task Update()
{
WebServiceDiscoveryResult service = engine.Load (this);
- service.Update ();
+ return service.Update ();
}
/// <summary>Delete the web reference from the project.</summary>
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebServiceDiscoveryResult.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebServiceDiscoveryResult.cs
index 653a640a42..2e8bfe4398 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebServiceDiscoveryResult.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences/WebServiceDiscoveryResult.cs
@@ -30,6 +30,7 @@ using MonoDevelop.Core;
using System.Collections.Generic;
using System.IO;
using System.CodeDom.Compiler;
+using System.Threading.Tasks;
namespace MonoDevelop.WebReferences
{
@@ -72,7 +73,7 @@ namespace MonoDevelop.WebReferences
public abstract string ProxyGenerator { get; }
- public virtual void GenerateFiles (DotNetProject project, string namspace, string referenceName)
+ public virtual async Task GenerateFiles (DotNetProject project, string namspace, string referenceName)
{
//make sure we have a valid value for the namespace
if (string.IsNullOrEmpty (namspace)) {
@@ -90,10 +91,10 @@ namespace MonoDevelop.WebReferences
project.Files.Remove (f);
// Generate the wsdl, disco and map files
- string mapSpec = GenerateDescriptionFiles (project, basePath);
+ string mapSpec = await GenerateDescriptionFiles (project, basePath);
// Generate the proxy class
- string proxySpec = CreateProxyFile (project, basePath, namspace + "." + referenceName, "Reference");
+ string proxySpec = await CreateProxyFile (project, basePath, namspace + "." + referenceName, "Reference");
ProjectFile mapFile = project.Files.GetFile (mapSpec);
if (mapFile == null) {
@@ -136,10 +137,10 @@ namespace MonoDevelop.WebReferences
WebReferencesService.NotifyWebReferencesChanged (project);
}
- protected abstract string GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath);
+ protected abstract Task<string> GenerateDescriptionFiles (DotNetProject dotNetProject, FilePath basePath);
- protected abstract string CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName);
+ protected abstract Task<string> CreateProxyFile (DotNetProject dotNetProject, FilePath basePath, string proxyNamespace, string referenceName);
- public abstract void Update ();
+ public abstract Task Update ();
}
}
diff --git a/main/src/addins/NUnit/Gui/TestNodeBuilder.cs b/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
index 7dd182adb7..2c5fbc8129 100644
--- a/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
+++ b/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
@@ -65,18 +65,20 @@ namespace MonoDevelop.NUnit
{
UnitTest test = dataObject as UnitTest;
nodeInfo.Icon = test.StatusIcon;
-
+
+ var title = RemoveMarkup(test.Title);
+
if (test.Status == TestStatus.Running) {
- nodeInfo.Label = test.Title;
+ nodeInfo.Label = title;
return;
} else if (test.Status == TestStatus.Loading) {
- nodeInfo.Label = test.Title + GettextCatalog.GetString (" (Loading)");
+ nodeInfo.Label = title + GettextCatalog.GetString (" (Loading)");
return;
} else if (test.Status == TestStatus.LoadError) {
- nodeInfo.Label = test.Title + GettextCatalog.GetString (" (Load failed)");
+ nodeInfo.Label = title + GettextCatalog.GetString (" (Load failed)");
return;
} else {
- nodeInfo.Label = test.Title;
+ nodeInfo.Label = title;
UnitTestResult res = test.GetLastResult ();
if (res != null && treeBuilder.Options ["ShowTestCounters"] && (test is UnitTestGroup)) {
@@ -130,6 +132,20 @@ namespace MonoDevelop.NUnit
ITreeBuilder tb = Context.GetTreeBuilder (sender);
if (tb != null) tb.Update ();
}
+
+ static string RemoveMarkup (string title)
+ {
+ var leftAngleIndex = title.IndexOf ('<');
+ if (leftAngleIndex > -1) {
+ var rightAngleIndex = title.IndexOf ('>');
+ if (rightAngleIndex > -1) {
+ title = title.Substring (0, leftAngleIndex) + title.Substring (rightAngleIndex + 1);
+ }
+ }
+
+ return title;
+ }
+
}
class TestNodeCommandHandler: NodeCommandHandler
diff --git a/main/src/addins/NUnit/MonoDevelop.NUnit.csproj b/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
index c663caccad..bb2c3bfeb2 100644
--- a/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
+++ b/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
@@ -331,6 +331,7 @@
<Compile Include="Gui\AbstractUnitTestEditorExtension.cs" />
<Compile Include="Services\AbstractResultsStore.cs" />
<Compile Include="Services\BinaryResultsStore.cs" />
+ <Compile Include="Services\NUnitSourceCodeLocationFinder.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/addins/NUnit/MonoDevelopNUnit.addin.xml b/main/src/addins/NUnit/MonoDevelopNUnit.addin.xml
index e7c51e39f2..4419c66c67 100644
--- a/main/src/addins/NUnit/MonoDevelopNUnit.addin.xml
+++ b/main/src/addins/NUnit/MonoDevelopNUnit.addin.xml
@@ -39,6 +39,10 @@
<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
</ExtensionPoint>
+ <ExtensionPoint path = "/MonoDevelop/NUnit/NUnitSourceCodeLocationFinder">
+ <ExtensionNode name="Class"/>
+ </ExtensionPoint>
+
<!-- Extensions -->
<Extension path = "/MonoDevelop/Ide/Pads">
diff --git a/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs b/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
index 900d6090e6..27224fd53f 100644
--- a/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
+++ b/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
@@ -126,7 +126,7 @@ namespace MonoDevelop.NUnit
return GetSourceCodeLocation (test.FixtureTypeNamespace, test.FixtureTypeName, test.Name);
}
- protected virtual SourceCodeLocation GetSourceCodeLocation (string fixtureTypeNamespace, string fixtureTypeName, string methodName)
+ protected virtual SourceCodeLocation GetSourceCodeLocation (string fixtureTypeNamespace, string fixtureTypeName, string testName)
{
return null;
}
@@ -382,8 +382,8 @@ namespace MonoDevelop.NUnit
var runnerExe = GetCustomConsoleRunnerCommand ();
if (runnerExe != null)
return RunWithConsoleRunner (runnerExe, test, suiteName, pathName, testName, testContext);
-
- ExternalTestRunner runner = (ExternalTestRunner)Runtime.ProcessService.CreateExternalProcessObject (typeof(ExternalTestRunner), testContext.ExecutionContext, UserAssemblyPaths);
+ var console = IdeApp.Workbench?.ProgressMonitors.ConsoleFactory.CreateConsole ();
+ ExternalTestRunner runner = (ExternalTestRunner)Runtime.ProcessService.CreateExternalProcessObject (typeof(ExternalTestRunner), testContext.ExecutionContext, UserAssemblyPaths, console);
LocalTestMonitor localMonitor = new LocalTestMonitor (testContext, test, suiteName, testName != null);
ITestFilter filter = null;
@@ -471,8 +471,14 @@ namespace MonoDevelop.NUnit
UnitTestResult RunWithConsoleRunner (ProcessExecutionCommand cmd, UnitTest test, string suiteName, string pathName, string testName, TestContext testContext)
{
var outFile = Path.GetTempFileName ();
- LocalConsole cons = new LocalConsole ();
-
+ var xmlOutputConsole = new LocalConsole ();
+ var appDebugOutputConsole = IdeApp.Workbench?.ProgressMonitors.ConsoleFactory.CreateConsole ();
+ OperationConsole cons;
+ if (appDebugOutputConsole != null) {
+ cons = new MultipleOperationConsoles (appDebugOutputConsole, xmlOutputConsole);
+ } else {
+ cons = xmlOutputConsole;
+ }
try {
MonoDevelop.NUnit.External.TcpTestListener tcpListener = null;
LocalTestMonitor localMonitor = new LocalTestMonitor (testContext, test, suiteName, testName != null);
@@ -517,9 +523,9 @@ namespace MonoDevelop.NUnit
if (doc.Root != null) {
var root = doc.Root.Elements ("test-suite").FirstOrDefault ();
if (root != null) {
- cons.SetDone ();
- var ot = cons.OutReader.ReadToEnd ();
- var et = cons.ErrorReader.ReadToEnd ();
+ xmlOutputConsole.SetDone ();
+ var ot = xmlOutputConsole.OutReader.ReadToEnd ();
+ var et = xmlOutputConsole.ErrorReader.ReadToEnd ();
testContext.Monitor.WriteGlobalLog (ot);
if (!string.IsNullOrEmpty (et)) {
testContext.Monitor.WriteGlobalLog ("ERROR:\n");
@@ -535,9 +541,9 @@ namespace MonoDevelop.NUnit
}
throw new Exception ("Test results could not be parsed.");
} catch (Exception ex) {
- cons.SetDone ();
- var ot = cons.OutReader.ReadToEnd ();
- var et = cons.ErrorReader.ReadToEnd ();
+ xmlOutputConsole.SetDone ();
+ var ot = xmlOutputConsole.OutReader.ReadToEnd ();
+ var et = xmlOutputConsole.ErrorReader.ReadToEnd ();
testContext.Monitor.WriteGlobalLog (ot);
if (!string.IsNullOrEmpty (et)) {
testContext.Monitor.WriteGlobalLog ("ERROR:\n");
diff --git a/main/src/addins/NUnit/Services/NUnitProjectTestSuite.cs b/main/src/addins/NUnit/Services/NUnitProjectTestSuite.cs
index 3bbfc1f11f..bb5e34550b 100644
--- a/main/src/addins/NUnit/Services/NUnitProjectTestSuite.cs
+++ b/main/src/addins/NUnit/Services/NUnitProjectTestSuite.cs
@@ -79,43 +79,15 @@ namespace MonoDevelop.NUnit
return p.Reference.IndexOf ("GuiUnit", StringComparison.OrdinalIgnoreCase) != -1 || p.Reference.IndexOf ("nunit.framework") != -1 || p.Reference.IndexOf ("nunit.core") != -1 || p.Reference.IndexOf ("nunitlite") != -1;
}
- protected override SourceCodeLocation GetSourceCodeLocation (string fixtureTypeNamespace, string fixtureTypeName, string methodName)
+ protected override SourceCodeLocation GetSourceCodeLocation (string fixtureTypeNamespace, string fixtureTypeName, string testName)
{
if (string.IsNullOrEmpty (fixtureTypeName) || string.IsNullOrEmpty (fixtureTypeName))
return null;
- var csc = new CancellationTokenSource ();
- var task = TypeSystemService.GetCompilationAsync (project, csc.Token);
- task.Wait (2000);
- if (!task.IsCompleted) {
- csc.Cancel ();
+ var task = NUnitSourceCodeLocationFinder.TryGetSourceCodeLocationAsync (project, fixtureTypeNamespace, fixtureTypeName, testName);
+ if (!task.Wait (2000))
return null;
- }
- var ctx = task.Result;
- var cls = ctx?.Assembly?.GetTypeByMetadataName (string.IsNullOrEmpty (fixtureTypeNamespace) ? fixtureTypeName : fixtureTypeNamespace + "." + fixtureTypeName);
- if (cls == null)
- return null;
-
- if (cls.Name != methodName) {
- foreach (var met in cls.GetMembers ().OfType<IMethodSymbol> ()) {
- if (met.Name == methodName) {
- var loc = met.Locations.FirstOrDefault (l => l.IsInSource);
- return ConvertToSourceCodeLocation (loc);
- }
- }
-
- int idx = methodName != null ? methodName.IndexOf ('(') : -1;
- if (idx > 0) {
- methodName = methodName.Substring (0, idx);
- foreach (var met in cls.GetMembers ().OfType<IMethodSymbol> ()) {
- if (met.Name == methodName){
- var loc = met.Locations.FirstOrDefault (l => l.IsInSource);
- return ConvertToSourceCodeLocation (loc);
- }
- }
- }
- }
- var classLoc = cls.Locations.FirstOrDefault (l => l.IsInSource);
- return ConvertToSourceCodeLocation (classLoc);
+ return task.Result;
+
}
SourceCodeLocation ConvertToSourceCodeLocation (Location loc)
@@ -123,7 +95,7 @@ namespace MonoDevelop.NUnit
var lineSpan = loc.GetLineSpan ();
return new SourceCodeLocation (loc.SourceTree.FilePath, lineSpan.StartLinePosition.Line, lineSpan.StartLinePosition.Character);
}
-
+
public override void Dispose ()
{
project.NameChanged -= OnProjectRenamed;
diff --git a/main/src/addins/NUnit/Services/NUnitSourceCodeLocationFinder.cs b/main/src/addins/NUnit/Services/NUnitSourceCodeLocationFinder.cs
new file mode 100644
index 0000000000..2cbc70db34
--- /dev/null
+++ b/main/src/addins/NUnit/Services/NUnitSourceCodeLocationFinder.cs
@@ -0,0 +1,71 @@
+//
+// NUnitSourceCodeLocationFinder.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading.Tasks;
+using System.Threading;
+using Mono.Addins;
+using System.Collections.Generic;
+using MonoDevelop.NUnit;
+using MonoDevelop.Projects;
+
+namespace MonoDevelop.NUnit
+{
+ public abstract class NUnitSourceCodeLocationFinder
+ {
+ static List<NUnitSourceCodeLocationFinder> locationFinder = new List<NUnitSourceCodeLocationFinder> ();
+
+ static NUnitSourceCodeLocationFinder ()
+ {
+ AddinManager.AddExtensionNodeHandler ("/MonoDevelop/NUnit/NUnitSourceCodeLocationFinder", delegate(object sender, ExtensionNodeEventArgs args) {
+ var provider = (NUnitSourceCodeLocationFinder) args.ExtensionObject;
+ switch (args.Change) {
+ case ExtensionChange.Add:
+ locationFinder.Add (provider);
+ break;
+ case ExtensionChange.Remove:
+ locationFinder.Remove (provider);
+ break;
+ }
+ });
+ }
+
+ public static async Task<SourceCodeLocation> TryGetSourceCodeLocationAsync (Project project, string fixtureTypeNamespace, string fixtureTypeName, string testName, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ foreach (var finder in locationFinder) {
+ var result = await finder.GetSourceCodeLocationAsync (project, fixtureTypeNamespace, fixtureTypeName, testName, cancellationToken).ConfigureAwait (false);
+ if (result != null)
+ return result;
+ }
+ return null;
+ }
+
+
+ public abstract Task<SourceCodeLocation> GetSourceCodeLocationAsync (Project project, string fixtureTypeNamespace, string fixtureTypeName, string testName, CancellationToken cancellationToken = default(CancellationToken));
+
+
+ }
+}
+
diff --git a/main/src/addins/VBNetBinding/Project/VBProjectExtension.cs b/main/src/addins/VBNetBinding/Project/VBProjectExtension.cs
index 66973b5080..94db4dd019 100644
--- a/main/src/addins/VBNetBinding/Project/VBProjectExtension.cs
+++ b/main/src/addins/VBNetBinding/Project/VBProjectExtension.cs
@@ -102,6 +102,7 @@ namespace MonoDevelop.VBNetBinding
{
base.OnInitialize ();
DefaultNamespaceIsImplicit = true;
+ SupportsRoslyn = true;
StockIcon = "md-project";
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
index 0cb75e7881..a7af49ecd8 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
@@ -30,13 +30,20 @@ namespace MonoDevelop.VersionControl
protected override void Initialize ()
{
base.Initialize ();
- VersionControlService.FileStatusChanged += Monitor;
+ VersionControlService.FileStatusChanged += Monitor;
+ IdeApp.Workspace.LastWorkspaceItemClosed += OnWorkspaceRefresh;
}
public override void Dispose ()
{
- VersionControlService.FileStatusChanged -= Monitor;
+ VersionControlService.FileStatusChanged -= Monitor;
+ IdeApp.Workspace.LastWorkspaceItemClosed -= OnWorkspaceRefresh;
base.Dispose ();
+ }
+
+ void OnWorkspaceRefresh (object sender, EventArgs args)
+ {
+ pathToObject.Clear ();
}
public override void BuildNode (ITreeBuilder builder, object dataObject, NodeInfo nodeInfo)
diff --git a/main/src/addins/WindowsPlatform/WindowsAPICodePack/Shell/CommonFileDialogs/CommonFileDialog.cs b/main/src/addins/WindowsPlatform/WindowsAPICodePack/Shell/CommonFileDialogs/CommonFileDialog.cs
index 8d418ac4c6..3cb8d2ddeb 100644
--- a/main/src/addins/WindowsPlatform/WindowsAPICodePack/Shell/CommonFileDialogs/CommonFileDialog.cs
+++ b/main/src/addins/WindowsPlatform/WindowsAPICodePack/Shell/CommonFileDialogs/CommonFileDialog.cs
@@ -638,6 +638,8 @@ namespace Microsoft.WindowsAPICodePack.Dialogs
PopulateWithIShellItems(items);
}
+ CleanupEventSink();
+
return result;
}
/// <summary>
@@ -675,6 +677,15 @@ namespace Microsoft.WindowsAPICodePack.Dialogs
}
}
+ private void CleanupEventSink()
+ {
+ if (nativeEventSink != null)
+ {
+ nativeDialog.Unadvise(nativeEventSink.Cookie);
+ nativeEventSink = null;
+ }
+ }
+
private void ApplyNativeSettings(IFileDialog dialog)
{
Debug.Assert(dialog != null, "No dialog instance to configure");
diff --git a/main/src/addins/Xml/MonoDevelop.Xml.csproj b/main/src/addins/Xml/MonoDevelop.Xml.csproj
index 33f9c160d2..ecd57e0813 100644
--- a/main/src/addins/Xml/MonoDevelop.Xml.csproj
+++ b/main/src/addins/Xml/MonoDevelop.Xml.csproj
@@ -70,6 +70,10 @@
<HintPath>..\..\..\build\bin\Microsoft.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
+ <Reference Include="System.Collections.Immutable">
+ <HintPath>..\..\..\build\bin\System.Collections.Immutable.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/DeleteActions.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/DeleteActions.cs
index a7dcf62aaa..114261d97a 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/DeleteActions.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/DeleteActions.cs
@@ -288,7 +288,10 @@ namespace Mono.TextEditor
var prevLineIsEmpty = prevLine != null && prevLine.Length == 0;
var startOffset = prevLine != null ? prevLine.EndOffset : 0;
- data.Remove (startOffset, data.Caret.Offset - startOffset);
+ var count = data.Caret.Offset - startOffset;
+ if (count < 0)
+ return;
+ data.Remove (startOffset, count);
if (prevLine != null) {
if (prevLineIsEmpty) {
if (line.Length - data.Caret.Column - 1 > 0 && data.HasIndentationTracker) {
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/MiscActions.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/MiscActions.cs
index be40e0f733..35cbd01be4 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/MiscActions.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Actions/MiscActions.cs
@@ -43,12 +43,12 @@ namespace Mono.TextEditor
int matchingBracketOffset = data.Document.GetMatchingBracketOffset (data.Caret.Offset);
if (matchingBracketOffset == -1 && data.Caret.Offset > 0)
matchingBracketOffset = data.Document.GetMatchingBracketOffset (data.Caret.Offset - 1);
-
+
if (matchingBracketOffset != -1)
data.Caret.Offset = matchingBracketOffset;
}
}
-
+
public static int RemoveTabInLine (TextEditorData data, DocumentLine line)
{
if (line.LengthIncludingDelimiter == 0)
@@ -116,7 +116,7 @@ namespace Mono.TextEditor
if (!removedFromLast)
lc = lead.Column;
} else {
- if (!removedFromFirst)
+ if (!removedFromFirst)
lc = lead.Column;
if (!removedFromLast)
ac = anchor.Column;
@@ -135,10 +135,15 @@ namespace Mono.TextEditor
return;
}
var line = data.Document.GetLine (data.Caret.Line);
- if (line != null)
- RemoveTabInLine (data, line);
+ if (line != null) {
+ if (line.Length == 0 && data.Caret.Column > 1) {
+ data.Caret.Column = 1;
+ } else {
+ RemoveTabInLine (data, line);
+ }
+ }
}
-
+
public static void GetSelectedLines (TextEditorData data, out int startLineNr, out int endLineNr)
{
if (data.IsSomethingSelected) {
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/MonoTextEditor.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/MonoTextEditor.cs
index 7bc05b9294..45e4e0c482 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/MonoTextEditor.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/MonoTextEditor.cs
@@ -279,7 +279,7 @@ namespace Mono.TextEditor
void ResizeChild (Rectangle allocation, EditorContainerChild child)
{
Requisition req = child.Child.SizeRequest ();
- var childRectangle = new Gdk.Rectangle (Allocation.X + child.X, Allocation.Y + child.Y, req.Width, req.Height);
+ var childRectangle = new Gdk.Rectangle (Allocation.X + child.X, Allocation.Y + child.Y, System.Math.Max (1, req.Width), System.Math.Max (1, req.Height));
if (!child.FixedPosition) {
double zoom = Options.Zoom;
childRectangle.X = Allocation.X + (int)(child.X * zoom - HAdjustment.Value);
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs
index 9380dcb32e..2ff8c661a8 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs
@@ -50,17 +50,7 @@ namespace Mono.TextEditor
Pango.Rectangle[] eolMarkerLayoutRect;
internal double charWidth;
- int highlightBracketOffset = -1;
- public int HighlightBracketOffset {
- get {
- return highlightBracketOffset;
- }
- set {
- highlightBracketOffset = value;
- }
- }
-
double LineHeight {
get {
return textEditor.LineHeight;
@@ -438,10 +428,6 @@ namespace Mono.TextEditor
eolMarkerLayoutRect [i] = tRect;
}
- DecorateLineBg -= DecorateMatchingBracket;
- if (textEditor.Options.HighlightMatchingBracket && !Document.ReadOnly)
- DecorateLineBg += DecorateMatchingBracket;
-
if (tabArray != null) {
tabArray.Dispose ();
tabArray = null;
@@ -1437,24 +1423,6 @@ namespace Mono.TextEditor
}
}
- void DecorateMatchingBracket (Cairo.Context ctx, LayoutWrapper layout, int offset, int length, double xPos, double y, int selectionStart, int selectionEnd)
- {
- uint curIndex = 0, byteIndex = 0;
- if (offset <= highlightBracketOffset && highlightBracketOffset <= offset + length) {
- int index = highlightBracketOffset - offset;
- Pango.Rectangle rect = layout.Layout.IndexToPos ((int)TranslateToUTF8Index (layout.LineChars, (uint)index, ref curIndex, ref byteIndex));
-
- var bracketMatch = new Cairo.Rectangle (xPos + rect.X / Pango.Scale.PangoScale - 0.5, y + 0.5, (rect.Width / Pango.Scale.PangoScale) + 1, (rect.Height / Pango.Scale.PangoScale));
- if (BackgroundRenderer == null) {
- ctx.SetSourceColor (ColorStyle.BraceMatchingRectangle.Color);
- ctx.Rectangle (bracketMatch);
- ctx.FillPreserve ();
- ctx.SetSourceColor (ColorStyle.BraceMatchingRectangle.SecondColor);
- ctx.Stroke ();
- }
- }
- }
-
public LayoutWrapper GetLayout (DocumentLine line)
{
ISyntaxMode mode = Document.SyntaxMode != null && textEditor.Options.EnableSyntaxHighlighting ? Document.SyntaxMode : new SyntaxMode (Document);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/MultipleOperationConsoles.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/MultipleOperationConsoles.cs
new file mode 100644
index 0000000000..01c44959f9
--- /dev/null
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/MultipleOperationConsoles.cs
@@ -0,0 +1,480 @@
+//
+// MultipleOperationConsoles.cs
+//
+// Author:
+// David Karlaš <david.karlas@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.IO;
+using System.Text;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using System.Linq;
+
+namespace MonoDevelop.Core.Execution
+{
+ public class MultipleOperationConsoles : OperationConsole
+ {
+ readonly OperationConsole [] consoles;
+ readonly TextWriter OutWriter;
+ readonly TextWriter ErrorWriter;
+ readonly TextWriter LogWriter;
+
+ public MultipleOperationConsoles (params OperationConsole [] consoles)
+ {
+ if (consoles == null)
+ throw new ArgumentNullException (nameof (consoles));
+ if (consoles.Length == 0)
+ throw new ArgumentOutOfRangeException (nameof (consoles));
+
+ this.consoles = consoles;
+ this.ErrorWriter = new MultipleTextWriters (consoles.Select (c => c.Error).ToArray ());
+ this.OutWriter = new MultipleTextWriters (consoles.Select (c => c.Out).ToArray ());
+ this.LogWriter = new MultipleTextWriters (consoles.Select (c => c.Log).ToArray ());
+ }
+
+ public override void Debug (int level, string category, string message)
+ {
+ foreach (var console in consoles) {
+ console.Debug (level, category, message);
+ }
+ }
+
+ public override TextWriter Error {
+ get {
+ return ErrorWriter;
+ }
+ }
+
+ public override TextReader In {
+ get {
+ return consoles [0].In;
+ }
+ }
+
+ public override TextWriter Log {
+ get {
+ return LogWriter;
+ }
+ }
+
+ public override TextWriter Out {
+ get {
+ return OutWriter;
+ }
+ }
+
+ public override void Dispose ()
+ {
+ foreach (var console in consoles) {
+ console.Dispose ();
+ }
+ }
+
+ class MultipleTextWriters : TextWriter
+ {
+ readonly Encoding encoding;
+ readonly TextWriter [] writers;
+
+ public MultipleTextWriters (params TextWriter [] writers)
+ {
+ if (writers == null)
+ throw new ArgumentNullException (nameof (writers));
+ if (writers.Length == 0)
+ throw new ArgumentOutOfRangeException (nameof (writers));
+
+ this.writers = writers;
+ encoding = writers [0].Encoding;
+
+ foreach (var writer in writers) {
+ if (encoding.GetType () != writer.Encoding.GetType ()) {
+ throw new Exception ("Encodings mismatch between writers.");
+ }
+ }
+ }
+
+ public override Encoding Encoding {
+ get {
+ return encoding;
+ }
+ }
+
+ public override void Close ()
+ {
+ foreach (var writer in writers) {
+ writer.Close ();
+ }
+ }
+
+ protected override void Dispose (bool disposing)
+ {
+ foreach (var writer in writers) {
+ writer.Dispose ();
+ }
+ base.Dispose (disposing);
+ }
+
+ public override void Flush ()
+ {
+ foreach (var writer in writers) {
+ writer.Flush ();
+ }
+ }
+
+ public override Task FlushAsync ()
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.FlushAsync ());
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override IFormatProvider FormatProvider {
+ get {
+ return writers [0].FormatProvider;
+ }
+ }
+
+ public override string NewLine {
+ get {
+ return writers [0].NewLine;
+ }
+ set {
+ foreach (var writer in writers) {
+ writer.NewLine = value;
+ }
+ }
+ }
+
+ public override void Write (bool value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (char value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (char [] buffer)
+ {
+ foreach (var writer in writers) {
+ writer.Write (buffer);
+ }
+ }
+
+ public override void Write (char [] buffer, int index, int count)
+ {
+ foreach (var writer in writers) {
+ writer.Write (buffer, index, count);
+ }
+ }
+
+ public override void Write (decimal value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (double value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (float value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (int value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (long value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (object value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (string format, object arg0)
+ {
+ foreach (var writer in writers) {
+ writer.Write (format, arg0);
+ }
+ }
+
+ public override void Write (string format, object arg0, object arg1)
+ {
+ foreach (var writer in writers) {
+ writer.Write (format, arg0, arg1);
+ }
+ }
+
+ public override void Write (string format, object arg0, object arg1, object arg2)
+ {
+ foreach (var writer in writers) {
+ writer.Write (format, arg0, arg1, arg2);
+ }
+ }
+
+ public override void Write (string format, params object [] arg)
+ {
+ foreach (var writer in writers) {
+ writer.Write (format, arg);
+ }
+ }
+
+ public override void Write (string value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (uint value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override void Write (ulong value)
+ {
+ foreach (var writer in writers) {
+ writer.Write (value);
+ }
+ }
+
+ public override Task WriteAsync (char value)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteAsync (value));
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override Task WriteAsync (char [] buffer, int index, int count)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteAsync (buffer, index, count));
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override Task WriteAsync (string value)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteAsync (value));
+ }
+ return Task.WhenAll (tasks);
+ }
+
+
+ public override Task WriteLineAsync ()
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteLineAsync ());
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override void WriteLine ()
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine ();
+ }
+ }
+
+ public override void WriteLine (bool value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (char value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (char [] buffer)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (buffer);
+ }
+ }
+
+ public override void WriteLine (char [] buffer, int index, int count)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (buffer, index, count);
+ }
+ }
+
+ public override void WriteLine (decimal value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (double value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (float value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (int value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (long value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (object value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (string format, object arg0)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (format, arg0);
+ }
+ }
+
+ public override void WriteLine (string format, object arg0, object arg1)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (format, arg0, arg1);
+ }
+ }
+
+ public override void WriteLine (string format, object arg0, object arg1, object arg2)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (format, arg0, arg1, arg2);
+ }
+ }
+
+ public override void WriteLine (string format, params object [] arg)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (format, arg);
+ }
+ }
+
+ public override void WriteLine (string value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (uint value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override void WriteLine (ulong value)
+ {
+ foreach (var writer in writers) {
+ writer.WriteLine (value);
+ }
+ }
+
+ public override Task WriteLineAsync (char [] buffer, int index, int count)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteLineAsync (buffer, index, count));
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override Task WriteLineAsync (char value)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteLineAsync (value));
+ }
+ return Task.WhenAll (tasks);
+ }
+
+ public override Task WriteLineAsync (string value)
+ {
+ var tasks = new List<Task> (writers.Length);
+ foreach (var writer in writers) {
+ tasks.Add (writer.WriteLineAsync (value));
+ }
+ return Task.WhenAll (tasks);
+ }
+ }
+ }
+}
+
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
index 445a33e5fa..536d9c3dd4 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
@@ -88,7 +88,7 @@ namespace MonoDevelop.Core.Execution
timer.Elapsed += new System.Timers.ElapsedEventHandler (WaitTimeout);
}
- public void Start (IList<string> userAssemblyPaths = null)
+ public void Start (IList<string> userAssemblyPaths = null, OperationConsole console = null)
{
lock (this) {
if (starting)
@@ -129,7 +129,7 @@ namespace MonoDevelop.Core.Execution
if (userAssemblyPaths != null)
cmd.UserAssemblyPaths = userAssemblyPaths;
cmd.DebugMode = isDebugMode;
- ProcessHostConsole cons = new ProcessHostConsole ();
+ OperationConsole cons = console ?? new ProcessHostConsole ();
var p = process = executionHandlerFactory.Execute (cmd, cons);
Counters.ExternalHostProcesses++;
@@ -182,12 +182,12 @@ namespace MonoDevelop.Core.Execution
}
}
- public object CreateInstance (Type type, string[] addins, IList<string> userAssemblyPaths = null)
+ public object CreateInstance (Type type, string[] addins, IList<string> userAssemblyPaths = null, OperationConsole console = null)
{
lock (this) {
references++;
if (processHost == null)
- Start (userAssemblyPaths);
+ Start (userAssemblyPaths, console);
}
if (!runningEvent.WaitOne (15000, false)) {
@@ -212,12 +212,12 @@ namespace MonoDevelop.Core.Execution
}
}
- public object CreateInstance (string assemblyPath, string typeName, string[] addins, IList<string> userAssemblyPaths = null)
+ public object CreateInstance (string assemblyPath, string typeName, string[] addins, IList<string> userAssemblyPaths = null, OperationConsole console = null)
{
lock (this) {
references++;
if (processHost == null)
- Start (userAssemblyPaths);
+ Start (userAssemblyPaths, console);
}
if (!runningEvent.WaitOne (15000, false)) {
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
index 9ef65cd766..a84f5846d7 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
@@ -305,44 +305,25 @@ namespace MonoDevelop.Core.Execution
return externalProcess;
}
}
-
- public IDisposable CreateExternalProcessObject (Type type)
- {
- return CreateExternalProcessObject (type, true);
- }
-
+
void CheckRemoteType (Type type)
{
if (!typeof(IDisposable).IsAssignableFrom (type))
throw new ArgumentException ("The remote object type must implement IDisposable", "type");
}
- public IDisposable CreateExternalProcessObject (Type type, bool shared, IList<string> userAssemblyPaths = null)
+ public IDisposable CreateExternalProcessObject (Type type, bool shared = true, IList<string> userAssemblyPaths = null, OperationConsole console = null)
{
CheckRemoteType (type);
- ProcessHostController hc = GetHost (type.ToString(), shared, null);
- return (IDisposable) hc.CreateInstance (type.Assembly.Location, type.FullName, GetRequiredAddins (type), userAssemblyPaths);
- }
-
- public IDisposable CreateExternalProcessObject (Type type, TargetRuntime runtime)
- {
- return CreateExternalProcessObject (type, runtime.GetExecutionHandler ());
+ var hc = GetHost (type.ToString(), shared, null);
+ return (IDisposable) hc.CreateInstance (type.Assembly.Location, type.FullName, GetRequiredAddins (type), userAssemblyPaths, console);
}
- public IDisposable CreateExternalProcessObject (Type type, IExecutionHandler executionHandler, IList<string> userAssemblyPaths = null)
+ public IDisposable CreateExternalProcessObject (Type type, IExecutionHandler executionHandler, IList<string> userAssemblyPaths = null, OperationConsole console = null)
{
CheckRemoteType (type);
- return (IDisposable)GetHost (type.ToString (), false, executionHandler).CreateInstance (type.Assembly.Location, type.FullName, GetRequiredAddins (type), userAssemblyPaths);
- }
-
- public IDisposable CreateExternalProcessObject (string assemblyPath, string typeName, bool shared, params string[] requiredAddins)
- {
- return (IDisposable) GetHost (typeName, shared, null).CreateInstance (assemblyPath, typeName, requiredAddins);
- }
-
- public IDisposable CreateExternalProcessObject (string assemblyPath, string typeName, IExecutionHandler executionHandler, params string[] requiredAddins)
- {
- return (IDisposable) GetHost (typeName, false, executionHandler).CreateInstance (assemblyPath, typeName, requiredAddins);
+ var hc = GetHost (type.ToString (), false, executionHandler);
+ return (IDisposable)hc.CreateInstance (type.Assembly.Location, type.FullName, GetRequiredAddins (type), userAssemblyPaths, console);
}
public bool IsValidForRemoteHosting (IExecutionHandler handler)
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Logging/AssertLoggingTraceListener.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Logging/AssertLoggingTraceListener.cs
index 75ae50cac6..9cf02b44e3 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Logging/AssertLoggingTraceListener.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Logging/AssertLoggingTraceListener.cs
@@ -32,28 +32,8 @@ using System.IO;
namespace MonoDevelop.Core.Logging
{
- class AssertLoggingTraceListener : TraceListener
+ class AssertLoggingTraceListener : DefaultTraceListener
{
- public override void Write (string message)
- {
- //ignore
- }
-
- public override void WriteLine (string message)
- {
- //ignore
- }
-
- public override void TraceData (TraceEventCache eventCache, string source, TraceEventType eventType, int id, params object[] data)
- {
- //ignore
- }
-
- public override void TraceData (TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
- {
- //ignore
- }
-
public override void Fail (string message, string detailMessage)
{
var frames = new StackTrace (1, true).GetFrames ();
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Web/RequestHelper.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Web/RequestHelper.cs
index c3afcac25b..fb29860769 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Web/RequestHelper.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Web/RequestHelper.cs
@@ -19,6 +19,7 @@ using System;
using System.Net;
using System.Collections.Specialized;
using System.Threading;
+using System.Threading.Tasks;
namespace MonoDevelop.Core.Web
{
@@ -63,6 +64,104 @@ namespace MonoDevelop.Core.Web
token.Register (request.Abort);
}
+ public async Task<HttpWebResponse> GetResponseAsync (CancellationToken token)
+ {
+ _previousRequest = null;
+ _previousResponse = null;
+ _previousStatusCode = null;
+ _usingSTSAuth = false;
+ _continueIfFailed = true;
+ _proxyCredentialsRetryCount = 0;
+ _credentialsRetryCount = 0;
+ int failureCount = 0;
+ const int MaxFailureCount = 10;
+
+ while (true)
+ {
+ // Create the request
+ var request = (HttpWebRequest)_createRequest();
+ MakeCancelable (request, token);
+ ConfigureRequest(request);
+
+ try
+ {
+ var auth = request.Headers["Authorization"];
+ _basicAuthIsUsedInPreviousRequest = (auth != null)
+ && auth.StartsWith("Basic ", StringComparison.Ordinal);
+
+ // Prepare the request, we do something like write to the request stream
+ // which needs to happen last before the request goes out
+ _prepareRequest(request);
+
+ HttpWebResponse response = (HttpWebResponse) await request.GetResponseAsync ();
+
+ // Cache the proxy and credentials
+ _proxyCache.Add(request.Proxy);
+
+ ICredentials credentials = request.Credentials;
+ _credentialCache.Add(request.RequestUri, credentials);
+ _credentialCache.Add(response.ResponseUri, credentials);
+
+ return response;
+ }
+ catch (WebException ex)
+ {
+ ++failureCount;
+ if (failureCount >= MaxFailureCount)
+ {
+ throw;
+ }
+
+ using (IHttpWebResponse response = GetResponse(ex.Response))
+ {
+ if (response == null &&
+ ex.Status != WebExceptionStatus.SecureChannelFailure)
+ {
+ // No response, something went wrong so just rethrow
+ throw;
+ }
+
+ // Special case https connections that might require authentication
+ if (ex.Status == WebExceptionStatus.SecureChannelFailure)
+ {
+ if (_continueIfFailed)
+ {
+ // Act like we got a 401 so that we prompt for credentials on the next request
+ _previousStatusCode = HttpStatusCode.Unauthorized;
+ continue;
+ }
+ throw;
+ }
+
+ // If we were trying to authenticate the proxy or the request and succeeded, cache the result.
+ if (_previousStatusCode == HttpStatusCode.ProxyAuthenticationRequired &&
+ response.StatusCode != HttpStatusCode.ProxyAuthenticationRequired)
+ {
+ _proxyCache.Add(request.Proxy);
+ }
+ else if (_previousStatusCode == HttpStatusCode.Unauthorized &&
+ response.StatusCode != HttpStatusCode.Unauthorized)
+ {
+ _credentialCache.Add(request.RequestUri, request.Credentials);
+ _credentialCache.Add(response.ResponseUri, request.Credentials);
+ }
+
+ _usingSTSAuth = STSAuthHelper.TryRetrieveSTSToken(request.RequestUri, response);
+
+ if (!IsAuthenticationResponse(response) || !_continueIfFailed)
+ {
+ throw;
+ }
+
+ _previousRequest = request;
+ _previousResponse = response;
+ _previousStatusCode = _previousResponse.StatusCode;
+ }
+ }
+ }
+
+ }
+
public HttpWebResponse GetResponse(CancellationToken token)
{
_previousRequest = null;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
index dc61356746..3852340876 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
@@ -557,6 +557,7 @@
<Compile Include="MonoDevelop.Core\FileWriteableState.cs" />
<Compile Include="MonoDevelop.Projects\ConditionedPropertyCollection.cs" />
<Compile Include="MonoDevelop.Core\AsyncEventHandler.cs" />
+ <Compile Include="MonoDevelop.Core.Execution\MultipleOperationConsoles.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/WebRequestHelper.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/WebRequestHelper.cs
index 0fa710e677..2c2f6d59b6 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/WebRequestHelper.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/WebRequestHelper.cs
@@ -73,13 +73,28 @@ namespace MonoDevelop.Core
/// Keeps sending requests until a response code that doesn't require authentication happens or if the request
/// requires authentication and the user has stopped trying to enter them (i.e. they hit cancel when they are prompted).
/// </remarks>
- public static Task<HttpWebResponse> GetResponseAsync (
+ public static async Task<HttpWebResponse> GetResponseAsync (
Func<HttpWebRequest> createRequest,
Action<HttpWebRequest> prepareRequest = null,
CancellationToken token = default(CancellationToken))
{
- //TODO: make this really async under the covers
- return Task.Factory.StartNew (() => GetResponse (createRequest, prepareRequest, token), token);
+ if (prepareRequest == null) {
+ prepareRequest = r => {};
+ }
+
+ if (credentialProvider == null) {
+ var req = createRequest ();
+ req.MakeCancelable (token);
+ prepareRequest (req);
+
+ return (HttpWebResponse) await req.GetResponseAsync ();
+ }
+
+ var handler = new RequestHelper (
+ createRequest, prepareRequest, proxyCache, CredentialStore.Instance, credentialProvider
+ );
+
+ return await handler.GetResponseAsync (token);
}
/// <summary>
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs
index 3563c445d4..9b805ebeb5 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/DefaultMSBuildEngine.cs
@@ -56,6 +56,7 @@ namespace MonoDevelop.Projects.MSBuild
public Dictionary<MSBuildImport,string> Imports = new Dictionary<MSBuildImport, string> ();
public Dictionary<string,string> GlobalProperties = new Dictionary<string, string> ();
public List<MSBuildTarget> Targets = new List<MSBuildTarget> ();
+ public List<MSBuildTarget> TargetsIgnoringCondition = new List<MSBuildTarget> ();
public List<MSBuildProject> ReferencedProjects = new List<MSBuildProject> ();
public Dictionary<MSBuildImport, List<ProjectInfo>> ImportedProjects = new Dictionary<MSBuildImport, List<ProjectInfo>> ();
public ConditionedPropertyCollection ConditionedProperties = new ConditionedPropertyCollection ();
@@ -141,6 +142,7 @@ namespace MonoDevelop.Projects.MSBuild
pi.Properties.Clear ();
pi.Imports.Clear ();
pi.Targets.Clear ();
+ pi.TargetsIgnoringCondition.Clear ();
// Unload referenced projects after evaluating to avoid unnecessary unload + load
var oldRefProjects = pi.ReferencedProjects;
@@ -450,6 +452,10 @@ namespace MonoDevelop.Projects.MSBuild
t.IsImported = true;
project.Targets.Add (t);
}
+ foreach (var t in p.TargetsIgnoringCondition) {
+ t.IsImported = true;
+ project.TargetsIgnoringCondition.Add (t);
+ }
project.ConditionedProperties.Append (p.ConditionedProperties);
}
return;
@@ -470,16 +476,19 @@ namespace MonoDevelop.Projects.MSBuild
string[] GetImportFiles (ProjectInfo project, MSBuildEvaluationContext context, MSBuildImport import, string extensionsPath)
{
- var tempCtx = new MSBuildEvaluationContext (context);
- var mep = MSBuildProjectService.ToMSBuildPath (null, extensionsPath);
- tempCtx.SetPropertyValue ("MSBuildExtensionsPath", mep);
- tempCtx.SetPropertyValue ("MSBuildExtensionsPath32", mep);
- tempCtx.SetPropertyValue ("MSBuildExtensionsPath64", mep);
+ if (extensionsPath != null) {
+ var tempCtx = new MSBuildEvaluationContext (context);
+ var mep = MSBuildProjectService.ToMSBuildPath (null, extensionsPath);
+ tempCtx.SetPropertyValue ("MSBuildExtensionsPath", mep);
+ tempCtx.SetPropertyValue ("MSBuildExtensionsPath32", mep);
+ tempCtx.SetPropertyValue ("MSBuildExtensionsPath64", mep);
+ context = tempCtx;
+ }
var pr = context.EvaluateString (import.Project);
project.Imports [import] = pr;
- if (!string.IsNullOrEmpty (import.Condition) && !SafeParseAndEvaluate (project, tempCtx, import.Condition, true))
+ if (!string.IsNullOrEmpty (import.Condition) && !SafeParseAndEvaluate (project, context, import.Condition, true))
return null;
var path = MSBuildProjectService.FromMSBuildPath (project.Project.BaseDirectory, pr);
@@ -489,7 +498,10 @@ namespace MonoDevelop.Projects.MSBuild
return File.Exists (path) ? new [] { path } : null;
}
else {
- var files = Directory.GetFiles (Path.GetDirectoryName (path), fileName);
+ path = Path.GetDirectoryName (path);
+ if (!Directory.Exists (path))
+ return null;
+ var files = Directory.GetFiles (path, fileName);
Array.Sort (files);
return files;
}
@@ -528,17 +540,18 @@ namespace MonoDevelop.Projects.MSBuild
void Evaluate (ProjectInfo project, MSBuildEvaluationContext context, MSBuildTarget target)
{
- if (SafeParseAndEvaluate (project, context, target.Condition)) {
- var newTarget = new MSBuildTarget (target.Name, target.Tasks);
- newTarget.AfterTargets = context.EvaluateString (target.AfterTargets);
- newTarget.Inputs = context.EvaluateString (target.Inputs);
- newTarget.Outputs = context.EvaluateString (target.Outputs);
- newTarget.BeforeTargets = context.EvaluateString (target.BeforeTargets);
- newTarget.DependsOnTargets = context.EvaluateString (target.DependsOnTargets);
- newTarget.Returns = context.EvaluateString (target.Returns);
- newTarget.KeepDuplicateOutputs = context.EvaluateString (target.KeepDuplicateOutputs);
+ bool condIsTrue = SafeParseAndEvaluate (project, context, target.Condition);
+ var newTarget = new MSBuildTarget (target.Name, target.Tasks);
+ newTarget.AfterTargets = context.EvaluateString (target.AfterTargets);
+ newTarget.Inputs = context.EvaluateString (target.Inputs);
+ newTarget.Outputs = context.EvaluateString (target.Outputs);
+ newTarget.BeforeTargets = context.EvaluateString (target.BeforeTargets);
+ newTarget.DependsOnTargets = context.EvaluateString (target.DependsOnTargets);
+ newTarget.Returns = context.EvaluateString (target.Returns);
+ newTarget.KeepDuplicateOutputs = context.EvaluateString (target.KeepDuplicateOutputs);
+ project.TargetsIgnoringCondition.Add (newTarget);
+ if (condIsTrue)
project.Targets.Add (newTarget);
- }
}
static bool SafeParseAndEvaluate (ProjectInfo project, MSBuildEvaluationContext context, string condition, bool collectConditionedProperties = false)
@@ -651,6 +664,11 @@ namespace MonoDevelop.Projects.MSBuild
return ((ProjectInfo)projectInstance).Targets;
}
+ public override IEnumerable<MSBuildTarget> GetTargetsIgnoringCondition (object projectInstance)
+ {
+ return ((ProjectInfo)projectInstance).TargetsIgnoringCondition;
+ }
+
public override void SetGlobalProperty (object projectInstance, string property, string value)
{
var pi = (ProjectInfo)projectInstance;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngine.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngine.cs
index 3e17684abc..f9ba3da355 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngine.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngine.cs
@@ -103,6 +103,8 @@ namespace MonoDevelop.Projects.MSBuild
public abstract IEnumerable<MSBuildTarget> GetTargets (object projectInstance);
+ public abstract IEnumerable<MSBuildTarget> GetTargetsIgnoringCondition (object projectInstance);
+
public abstract void SetGlobalProperty (object projectInstance, string property, string value);
public abstract void RemoveGlobalProperty (object projectInstance, string property);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV12.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV12.cs
index df15e56634..f6a287abc7 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV12.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV12.cs
@@ -163,6 +163,11 @@ namespace MonoDevelop.Projects.MSBuild
}
}
+ public override IEnumerable<MSBuildTarget> GetTargetsIgnoringCondition (object projectInstance)
+ {
+ throw new NotImplementedException ();
+ }
+
public override void SetGlobalProperty (object project, string property, string value)
{
var p = (MSProject)project;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV4.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV4.cs
index b8a304bef8..a0b6424037 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV4.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEngineV4.cs
@@ -202,6 +202,11 @@ namespace MonoDevelop.Projects.MSBuild
{
throw new NotImplementedException ();
}
+
+ public override IEnumerable<MSBuildTarget> GetTargetsIgnoringCondition (object projectInstance)
+ {
+ throw new NotImplementedException ();
+ }
}
#endif
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
index 3f09106dc4..e980e56fe2 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildEvaluationContext.cs
@@ -109,7 +109,46 @@ namespace MonoDevelop.Projects.MSBuild
properties.Add ("MSBuildFrameworkToolsPath", MSBuildProjectService.ToMSBuildPath (null, frameworkToolsPath));
properties.Add ("MSBuildFrameworkToolsPath32", MSBuildProjectService.ToMSBuildPath (null, frameworkToolsPath));
- if (!String.IsNullOrEmpty (DefaultExtensionsPath)) {
+ if (Platform.IsWindows) {
+ // Taken from MSBuild source:
+ var programFiles = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFiles);
+ var programFiles32 = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86);
+ if (string.IsNullOrEmpty(programFiles32))
+ programFiles32 = programFiles; // 32 bit box
+
+ string programFiles64;
+ if (programFiles == programFiles32) {
+ // either we're in a 32-bit window, or we're on a 32-bit machine.
+ // if we're on a 32-bit machine, ProgramW6432 won't exist
+ // if we're on a 64-bit machine, ProgramW6432 will point to the correct Program Files.
+ programFiles64 = Environment.GetEnvironmentVariable("ProgramW6432");
+ }
+ else {
+ // 64-bit window on a 64-bit machine; %ProgramFiles% points to the 64-bit
+ // Program Files already.
+ programFiles64 = programFiles;
+ }
+
+ var extensionsPath32 = MSBuildProjectService.ToMSBuildPath (null, Path.Combine (programFiles32, "MSBuild"));
+ properties.Add ("MSBuildExtensionsPath32", extensionsPath32);
+
+ if (programFiles64 != null)
+ properties.Add ("MSBuildExtensionsPath64", MSBuildProjectService.ToMSBuildPath (null, Path.Combine(programFiles64, "MSBuild")));
+
+ // MSBuildExtensionsPath: The way this used to work is that it would point to "Program Files\MSBuild" on both
+ // 32-bit and 64-bit machines. We have a switch to continue using that behavior; however the default is now for
+ // MSBuildExtensionsPath to always point to the same location as MSBuildExtensionsPath32.
+
+ bool useLegacyMSBuildExtensionsPathBehavior = !String.IsNullOrEmpty(Environment.GetEnvironmentVariable("MSBUILDLEGACYEXTENSIONSPATH"));
+
+ string extensionsPath;
+ if (useLegacyMSBuildExtensionsPathBehavior)
+ extensionsPath = Path.Combine (programFiles, "MSBuild");
+ else
+ extensionsPath = extensionsPath32;
+ properties.Add ("MSBuildExtensionsPath", extensionsPath);
+ }
+ else if (!String.IsNullOrEmpty (DefaultExtensionsPath)) {
var ep = MSBuildProjectService.ToMSBuildPath (null, extensionsPath);
properties.Add ("MSBuildExtensionsPath", ep);
properties.Add ("MSBuildExtensionsPath32", ep);
@@ -147,6 +186,9 @@ namespace MonoDevelop.Projects.MSBuild
internal static IEnumerable<string> GetApplicableExtensionsPaths ()
{
+ // On windows there is a single extension path, which is already properly defined in the engine
+ if (Platform.IsWindows)
+ yield return null;
if (Platform.IsMac)
yield return MacOSXExternalXBuildDir;
yield return DotConfigExtensionsPath;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs
index 82736754f4..187da6cd79 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs
@@ -416,6 +416,8 @@ namespace MonoDevelop.Projects.MSBuild
public void Evaluate ()
{
+ if (mainProjectInstance != null)
+ mainProjectInstance.Dispose ();
mainProjectInstance = new MSBuildProjectInstance (this);
mainProjectInstance.Evaluate ();
conditionedProperties = mainProjectInstance.GetConditionedProperties ();
@@ -423,6 +425,8 @@ namespace MonoDevelop.Projects.MSBuild
public Task EvaluateAsync ()
{
+ if (mainProjectInstance != null)
+ mainProjectInstance.Dispose ();
mainProjectInstance = new MSBuildProjectInstance (this);
return mainProjectInstance.EvaluateAsync ().ContinueWith (t => {
conditionedProperties = mainProjectInstance.GetConditionedProperties ();
@@ -626,6 +630,11 @@ namespace MonoDevelop.Projects.MSBuild
get { return mainProjectInstance.Targets; }
}
+ public IEnumerable<IMSBuildTargetEvaluated> EvaluatedTargetsIgnoringCondition
+ {
+ get { return mainProjectInstance.TargetsIgnoringCondition; }
+ }
+
public MSBuildPropertyGroup GetGlobalPropertyGroup ()
{
return PropertyGroups.FirstOrDefault (g => g.Condition.Length == 0);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectInstance.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectInstance.cs
index 837261498f..73e5bdd747 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectInstance.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectInstance.cs
@@ -39,6 +39,7 @@ namespace MonoDevelop.Projects.MSBuild
List<IMSBuildItemEvaluated> evaluatedItemsIgnoringCondition = new List<IMSBuildItemEvaluated> ();
MSBuildEvaluatedPropertyCollection evaluatedProperties;
MSBuildTarget[] targets = new MSBuildTarget[0];
+ MSBuildTarget[] targetsIgnoringCondition = new MSBuildTarget[0];
Dictionary<string,string> globalProperties = new Dictionary<string, string> ();
ConditionedPropertyCollection conditionedProperties;
@@ -164,6 +165,7 @@ namespace MonoDevelop.Projects.MSBuild
((MSBuildPropertyGroupEvaluated)it.Metadata).RemoveProperty (NodeIdPropertyName);
targets = e.GetTargets (project).ToArray ();
+ targetsIgnoringCondition = e.GetTargetsIgnoringCondition (project).ToArray ();
}
var props = new MSBuildEvaluatedPropertyCollection (msproject);
@@ -202,6 +204,12 @@ namespace MonoDevelop.Projects.MSBuild
}
}
+ public IEnumerable<IMSBuildTargetEvaluated> TargetsIgnoringCondition {
+ get {
+ return targetsIgnoringCondition;
+ }
+ }
+
internal IPropertySet GetPropertiesLinkedToGroup (MSBuildPropertyGroup group)
{
evaluatedProperties.LinkToGroup (group);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs
index 9d12344de8..1444d45fe5 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProjectService.cs
@@ -949,8 +949,11 @@ namespace MonoDevelop.Projects.MSBuild
string responseKey = "[MonoDevelop]";
string sref = null;
p.ErrorDataReceived += (sender, e) => {
- if (e.Data == null)
+ if (e.Data == null) {
+ if (string.IsNullOrEmpty (sref))
+ LoggingService.LogError ("The MSBuild builder exited before initializing");
return;
+ }
if (e.Data.StartsWith (responseKey, StringComparison.Ordinal)) {
sref = e.Data.Substring (responseKey.Length);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
index 90e985ef4c..50c0870736 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
@@ -258,6 +258,8 @@ namespace MonoDevelop.Projects
get { return (flags & DotNetProjectFlags.GeneratesDebugInfoFile) != 0; }
}
+ public bool SupportsRoslyn { get; protected set; }
+
protected virtual DotNetProjectFlags OnGetDotNetProjectFlags ()
{
return DotNetProjectFlags.GeneratesDebugInfoFile;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
index d1446c5fac..88f50ba90e 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
@@ -176,17 +176,23 @@ namespace MonoDevelop.Projects
sourceProject.FileName = FileName;
}
+ var ggroup = sourceProject.GetGlobalPropertyGroup ();
+ // Avoid crash if there is not global group
+ if (ggroup == null)
+ ggroup = sourceProject.AddNewPropertyGroup (false);
+
+ // Load the evaluated properties
+ InitMainGroupProperties (ggroup);
+ }
+
+ void InitMainGroupProperties (MSBuildPropertyGroup globalGroup)
+ {
// Create a project instance to be used for comparing old and new values in the global property group
// We use a dummy configuration and platform to avoid loading default values from the configurations
// while evaluating
var c = Guid.NewGuid ().ToString ();
- using (var pi = CreateProjectInstaceForConfiguration (c, c)) {
- var globalGroup = sourceProject.GetGlobalPropertyGroup ();
- // Avoid crash if there is not global group
- if (globalGroup == null)
- globalGroup = sourceProject.AddNewPropertyGroup (false);
+ using (var pi = CreateProjectInstaceForConfiguration (c, c))
mainGroupProperties = pi.GetPropertiesLinkedToGroup (globalGroup);
- }
}
protected override void OnExtensionChainInitialized ()
@@ -256,8 +262,10 @@ namespace MonoDevelop.Projects
{
var conf = (ProjectConfiguration)args.Configuration;
- // Initialize the property group
- if (!Loading)
+ // Initialize the property group only if the project is not being loaded (in which case it will
+ // be initialized by the ReadProject method) or if the project is new (because it will be initialized
+ // after the project is fully written, since only then all imports are in place
+ if (!Loading && !sourceProject.IsNewProject)
InitConfiguration (conf);
base.OnConfigurationAdded (args);
@@ -897,7 +905,7 @@ namespace MonoDevelop.Projects
protected virtual bool OnGetSupportsTarget (string target)
{
- return sourceProject.EvaluatedTargets.Any (t => t.Name == target);
+ return sourceProject.EvaluatedTargetsIgnoringCondition.Any (t => t.Name == target);
}
/// <summary>
@@ -2003,6 +2011,16 @@ namespace MonoDevelop.Projects
globalGroup.PurgeDefaultProperties ();
globalGroup.ResetIsNewFlags ();
+ if (sourceProject.IsNewProject) {
+ // If the project is new, the evaluated properties lists are empty. Now that the project is saved,
+ // those lists can be filled, so that the project is left in the same state it would have if it
+ // was just loaded.
+ sourceProject.Evaluate ();
+ InitMainGroupProperties (globalGroup);
+ foreach (ProjectConfiguration conf in Configurations)
+ InitConfiguration (conf);
+ }
+
sourceProject.IsNewProject = false;
} finally {
saving = false;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateInformation.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateInformation.cs
index eda33a4205..316dda8010 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateInformation.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateInformation.cs
@@ -82,30 +82,5 @@ namespace MonoDevelop.Projects
ActiveConfiguration = projectCreateInformation.ActiveConfiguration;
Parameters = projectCreateInformation.Parameters;
}
-
- public bool ShouldCreate (string createCondition)
- {
- // This logic is duplicated in the TemplateConditionEvaluator.
- if (string.IsNullOrWhiteSpace (createCondition))
- return true;
-
- createCondition = createCondition.Trim ();
-
- string parameter = GetNotConditionParameterName (createCondition);
- if (parameter != null) {
- return !Parameters.GetBoolean (parameter);
- }
-
- return Parameters.GetBoolean (createCondition);
- }
-
- static string GetNotConditionParameterName (string createCondition)
- {
- if (createCondition.StartsWith ("!")) {
- return createCondition.Substring (1).TrimStart ();
- }
-
- return null;
- }
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateParameters.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateParameters.cs
index fc56097a3b..27f4f88873 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateParameters.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectCreateParameters.cs
@@ -44,13 +44,6 @@ namespace MonoDevelop.Projects
parameters = new Dictionary<string, string> (StringComparer.OrdinalIgnoreCase);
}
- public void MergeTo (IDictionary<string, string> other)
- {
- foreach (KeyValuePair<string, string> parameter in parameters) {
- other [parameter.Key] = parameter.Value;
- }
- }
-
public string this [string name] {
get {
string result;
@@ -64,12 +57,6 @@ namespace MonoDevelop.Projects
}
}
- [Obsolete("Use StringTagModelExtensions.GetBoolValue")]
- public bool GetBoolean (string name, bool defaultValue = false)
- {
- return ((IStringTagModel)this).GetBoolValue (name, defaultValue);
- }
-
object IStringTagModel.GetValue (string name)
{
string result;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
index 6c0b74dddf..4e7fb71428 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
@@ -216,8 +216,10 @@ namespace MonoDevelop.Projects
SolutionItem newItem;
try {
- if (ParentSolution.IsSolutionItemEnabled (item.FileName))
- newItem = await Services.ProjectService.ReadSolutionItem (monitor, item.FileName, null, ctx:new SolutionLoadContext (ParentSolution));
+ if (ParentSolution.IsSolutionItemEnabled (item.FileName)) {
+ using (var ctx = new SolutionLoadContext (ParentSolution))
+ newItem = await Services.ProjectService.ReadSolutionItem (monitor, item.FileName, null, ctx: ctx);
+ }
else {
UnknownSolutionItem e = new UnloadedSolutionItem () {
FileName = item.FileName
@@ -309,9 +311,11 @@ namespace MonoDevelop.Projects
public async Task<SolutionItem> AddItem (ProgressMonitor monitor, string filename, bool createSolutionConfigurations)
{
if (monitor == null) monitor = new ProgressMonitor ();
- SolutionItem entry = await Services.ProjectService.ReadSolutionItem (monitor, filename, null, ctx:new SolutionLoadContext (ParentSolution));
- AddItem (entry, createSolutionConfigurations);
- return entry;
+ using (var ctx = new SolutionLoadContext (ParentSolution)) {
+ var entry = await Services.ProjectService.ReadSolutionItem (monitor, filename, null, ctx: ctx);
+ AddItem (entry, createSolutionConfigurations);
+ return entry;
+ }
}
public void AddItem (SolutionFolderItem item)
diff --git a/main/src/core/MonoDevelop.Ide/AssemblyInfo.cs b/main/src/core/MonoDevelop.Ide/AssemblyInfo.cs
index f5110291c3..1a1a28c7dc 100644
--- a/main/src/core/MonoDevelop.Ide/AssemblyInfo.cs
+++ b/main/src/core/MonoDevelop.Ide/AssemblyInfo.cs
@@ -32,3 +32,4 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("MonoDevelop.CSharpBinding.AspNet")]
[assembly: InternalsVisibleTo("MonoDevelop.GtkCore")]
[assembly: InternalsVisibleTo("MonoDevelop.PackageManagement")]
+[assembly: InternalsVisibleTo("Xamarin.Forms.Addin.Tests")]
diff --git a/main/src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml b/main/src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml
index a5ca844ab2..201f663303 100644
--- a/main/src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml
+++ b/main/src/core/MonoDevelop.Ide/ExtensionModel/Commands.addin.xml
@@ -425,7 +425,10 @@
defaultHandler = "MonoDevelop.Ide.Commands.CloseWorkspaceHandler"
_label = "C_lose Workspace"
_description = "Close all solutions open in the current workspace"
- icon = "md-close-combine-icon" />
+ icon = "md-close-combine-icon"
+ shortcut = "Control|Alt|W"
+ macShortcut = "Meta|Alt|W"
+ />
<Command id = "MonoDevelop.Ide.Commands.FileCommands.CloseWorkspaceItem"
defaultHandler = "MonoDevelop.Ide.Commands.CloseWorkspaceHandler"
_label = "C_lose"
diff --git a/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml b/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
index cf4d15a937..1eaaa09818 100644
--- a/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
+++ b/main/src/core/MonoDevelop.Ide/ExtensionModel/MonoDevelop.Ide.addin.xml
@@ -75,7 +75,7 @@
<ExtensionNode name="FileFilter" type="MonoDevelop.Ide.Codons.FileFilterCodon"/>
</ExtensionPoint>
- <ExtensionPoint path = "/MonoDevelop/Ide/TextEditorExtensions" name = "Text editor extensions">
+ <ExtensionPoint path = "/MonoDevelop/Ide/TextEditorExtensions" name = "Text editor extensions" defaultInsertAfter = "MidStep">
<Description>Extensions to the text editor. Classes must be a subclass of TextEditorExtension.</Description>
<ExtensionNode name="Class" type="MonoDevelop.Ide.Extensions.TextEditorExtensionNode"/>
</ExtensionPoint>
@@ -262,6 +262,9 @@
<Class id="InitialStep" class = "MonoDevelop.Ide.Editor.Extension.TextEditorExtensionMarker" />
<Class id="MidStep" class = "MonoDevelop.Ide.Editor.Extension.TextEditorExtensionMarker" />
<Class class = "MonoDevelop.Ide.Editor.Extension.BraceMatcherTextEditorExtension" />
+ <Class class = "MonoDevelop.Ide.Editor.Extension.DefaultCommandTextEditorExtension" />
+ <Class class = "MonoDevelop.Ide.Editor.Extension.FoldingTextEditorExtension" />
+ <Class class = "MonoDevelop.Ide.Editor.Extension.ErrorHandlerTextEditorExtension" />
<Class id="FinalStep" class = "MonoDevelop.Ide.Editor.Extension.TextEditorExtensionMarker" />
</Extension>
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs
index 45b3bc22ea..df759e541b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs
@@ -152,7 +152,7 @@ namespace MonoDevelop.Components.AutoTest
var propertiesObject = new ObjectProperties ();
if (resultObject != null) {
var properties = resultObject.GetType ().GetProperties (
- BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
+ BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
foreach (var property in properties) {
try {
var value = GetPropertyValue (property.Name, resultObject);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Chart/BasicChart.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Chart/BasicChart.cs
index cfe3b9cb6f..f7caa76582 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Chart/BasicChart.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Chart/BasicChart.cs
@@ -43,7 +43,7 @@ namespace MonoDevelop.Components.Chart
widget = new ChartWidget ();
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return widget;
}
@@ -956,7 +956,10 @@ namespace MonoDevelop.Components.Chart
selectionStart = selectionEnd;
selectionEnd = tmp;
}
- chart.OnSelectionChanged ();
+
+ if (chart != null) {
+ chart.OnSelectionChanged ();
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
index d73871947b..cb7ed361f0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Commands/CommandManager.cs
@@ -637,6 +637,8 @@ namespace MonoDevelop.Components.Commands
public void UnregisterCommandTargetVisitor (ICommandTargetVisitor visitor)
{
visitors.Remove (visitor);
+
+ StopStatusUpdaterIfNeeded ();
}
/// <summary>
@@ -906,7 +908,7 @@ namespace MonoDevelop.Components.Commands
object initialCommandTarget, EventHandler closeHandler)
{
#if MAC
- var menu = CreateNSMenu (entrySet, initialCommandTarget, closeHandler);
+ var menu = CreateNSMenu (entrySet, initialCommandTarget ?? parent, closeHandler);
ContextMenuExtensionsMac.ShowContextMenu (parent, evt, menu);
#else
var menu = CreateMenu (entrySet, closeHandler);
@@ -929,7 +931,7 @@ namespace MonoDevelop.Components.Commands
object initialCommandTarget = null)
{
#if MAC
- var menu = CreateNSMenu (entrySet, initialCommandTarget);
+ var menu = CreateNSMenu (entrySet, initialCommandTarget ?? parent);
ContextMenuExtensionsMac.ShowContextMenu (parent, x, y, menu);
#else
var menu = CreateMenu (entrySet);
@@ -1690,7 +1692,7 @@ namespace MonoDevelop.Components.Commands
cmdTarget = null;
if (cmdTarget == null || !visitedTargets.Add (cmdTarget)) {
- if (delegatorStack.Count > 0) {
+ while (delegatorStack.Count > 0) {
var del = delegatorStack.Pop ();
if (del is ICommandDelegatorRouter)
cmdTarget = ((ICommandDelegatorRouter)del).GetNextCommandTarget ();
@@ -1884,6 +1886,14 @@ namespace MonoDevelop.Components.Commands
toolbarUpdaterRunning = true;
}
}
+
+ void StopStatusUpdaterIfNeeded ()
+ {
+ if (toolbars.Count != 0 || visitors.Count != 0)
+ return;
+
+ StopStatusUpdater ();
+ }
void StopStatusUpdater ()
{
@@ -1954,6 +1964,8 @@ namespace MonoDevelop.Components.Commands
public void UnregisterCommandBar (ICommandBar commandBar)
{
toolbars.Remove (commandBar);
+
+ StopStatusUpdaterIfNeeded ();
}
void UpdateToolbars ()
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockItemToolbar.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockItemToolbar.cs
index 0d683b5967..5908aa86e0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockItemToolbar.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Docking/DockItemToolbar.cs
@@ -209,7 +209,7 @@ namespace MonoDevelop.Components.Docking
Image.Show ();
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return button;
}
@@ -222,6 +222,30 @@ namespace MonoDevelop.Components.Docking
button.Clicked -= value;
}
}
+
+ public class DockToolButtonImage : Control
+ {
+ ImageView image;
+ internal DockToolButtonImage (ImageView image)
+ {
+ this.image = image;
+ }
+
+ protected override object CreateNativeWidget<T> ()
+ {
+ return image;
+ }
+
+ public static implicit operator Gtk.Widget (DockToolButtonImage d)
+ {
+ return d.GetNativeWidget<Gtk.Widget> ();
+ }
+
+ public static implicit operator DockToolButtonImage (ImageView d)
+ {
+ return new DockToolButtonImage (d);
+ }
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
index 5db3ed8216..b5204a2e27 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
@@ -99,11 +99,18 @@ namespace MonoDevelop.Components.MainToolbar
}
static List<Tuple<string, string, ProjectFile>> allFilesCache;
+ static object allFilesLock = new object ();
public override Task GetResults (ISearchResultCallback searchResultCallback, SearchPopupSearchPattern pattern, CancellationToken token)
{
return Task.Run (delegate {
- var files = allFilesCache = allFilesCache ?? GenerateAllFiles ();
+ List<Tuple<string, string, ProjectFile>> files;
+ //This lock is here in case user quickly types 5 letters which triggers 5 threads
+ //we don't want to use all CPU doing same thing, instead 1st one will create cache, others will wait here
+ //and then all will use cached version...
+ lock (allFilesLock) {
+ files = allFilesCache = allFilesCache ?? GenerateAllFiles ();
+ }
var matcher = StringMatcher.GetMatcher (pattern.Pattern, false);
var savedMatches = new Dictionary<string, MatchResult> ();
foreach (var file in files) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
index 44d6118ed4..c6fd6fd3c2 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
@@ -402,6 +402,10 @@ namespace MonoDevelop.Components.MainToolbar
UpdateBuildConfiguration ();
}
+ if (currentStartupProject == null) {
+ return;
+ }
+
var runtime = (RuntimeModel)ToolbarView.ActiveRuntime;
if (runtime != null && runtime.Command == null) {
currentStartupProject.UserProperties.SetValue<string> ("PreferredExecutionTarget", runtime.TargetId);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupSearchPattern.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupSearchPattern.cs
index 1d77e7ec8b..556bf30628 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupSearchPattern.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupSearchPattern.cs
@@ -34,6 +34,7 @@ using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
using MonoDevelop.Ide;
using MonoDevelop.Ide.CodeCompletion;
+using System.Text.RegularExpressions;
namespace MonoDevelop.Components.MainToolbar
{
@@ -65,8 +66,44 @@ namespace MonoDevelop.Components.MainToolbar
UnparsedPattern = unparsedPattern;
}
+ static readonly Regex githubRegex = new Regex ("((?<tag>.*):)?(?<pattern>[^#]+)#L(?<line>\\d+)$", RegexOptions.Compiled); // for example: ExceptionCaughtDialog.cs#L510
+ static readonly Regex lineRegex = new Regex ("((?<tag>[^:]*):)?(?<pattern>[^0-:][^:]*):[a-zA-Z]*\\s*(?<line>\\d+)$", RegexOptions.Compiled); // for example: ExceptionCaughtDialog.cs:line 510
+
public static SearchPopupSearchPattern ParsePattern (string searchPattern)
{
+ var githubMatch = githubRegex.Match (searchPattern);
+ if (githubMatch.Success) {
+ int parsedLine;
+ try {
+ parsedLine = int.Parse (githubMatch.Groups ["line"].Value);
+ } catch (Exception) {
+ parsedLine = -1;
+ }
+ return new SearchPopupSearchPattern (githubMatch.Groups["tag"].Success ? githubMatch.Groups["tag"].Value : null,
+ githubMatch.Groups["pattern"].Success ? githubMatch.Groups["pattern"].Value : null,
+ parsedLine,
+ -1,
+ searchPattern);
+
+ }
+
+
+ var lineRegexMatch = lineRegex.Match (searchPattern);
+ if (lineRegexMatch.Success) {
+ int parsedLine;
+ try {
+ parsedLine = int.Parse (lineRegexMatch.Groups ["line"].Value);
+ } catch (Exception) {
+ parsedLine = -1;
+ }
+ return new SearchPopupSearchPattern (lineRegexMatch.Groups["tag"].Success ? lineRegexMatch.Groups["tag"].Value : null,
+ lineRegexMatch.Groups["pattern"].Value,
+ parsedLine,
+ -1,
+ searchPattern);
+
+ }
+
string tag = null;
string pattern = null;
int lineNumber = -1;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs
index be226052c1..f18bdb998f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchPopupWindow.cs
@@ -180,9 +180,9 @@ namespace MonoDevelop.Components.MainToolbar
if (region.Length <= 0) {
if (Pattern.LineNumber == 0) {
- IdeApp.Workbench.OpenDocument (SelectedItemFileName, project: null);
+ await IdeApp.Workbench.OpenDocument (SelectedItemFileName, project: null);
} else {
- IdeApp.Workbench.OpenDocument (SelectedItemFileName, null, Pattern.LineNumber, Pattern.HasColumn ? Pattern.Column : 1);
+ await IdeApp.Workbench.OpenDocument (SelectedItemFileName, null, Pattern.LineNumber, Pattern.HasColumn ? Pattern.Column : 1);
}
} else {
await IdeApp.Workbench.OpenDocument (new FileOpenInformation (SelectedItemFileName, null) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
index 61a3bdb059..5539608113 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/Control.cs
@@ -34,7 +34,7 @@ using MonoDevelop.Components.Mac;
namespace MonoDevelop.Components
{
- public class Control : IDisposable
+ public class Control : IDisposable, ICommandRouter
{
internal static Dictionary<object, WeakReference<Control>> cache = new Dictionary<object, WeakReference<Control>> ();
internal object nativeWidget;
@@ -51,7 +51,7 @@ namespace MonoDevelop.Components
cache.Add (nativeWidget, new WeakReference<Control> (this));
}
- protected virtual object CreateNativeWidget ()
+ protected virtual object CreateNativeWidget<T> ()
{
throw new NotSupportedException ();
}
@@ -60,7 +60,7 @@ namespace MonoDevelop.Components
{
if (nativeWidget == null) {
var toCache = this;
- var w = CreateNativeWidget ();
+ var w = CreateNativeWidget<T> ();
if (!(w is T)) {
var temp = w as Control;
while (temp != null) {
@@ -211,6 +211,11 @@ namespace MonoDevelop.Components
gtkWidget.Destroyed -= OnGtkDestroyed;
}
}
+
+ object ICommandRouter.GetNextCommandTarget ()
+ {
+ return nativeWidget;
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWindow.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWindow.cs
index 3a59ca1ec1..daba7f1cc7 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWindow.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWindow.cs
@@ -276,7 +276,6 @@ namespace MonoDevelop.Ide.CodeCompletion
public bool IsUniqueMatch {
get {
- list.FilterWords ();
return list.filteredItems.Count == 1;
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs
index 5473fbab24..fc7c2e6e51 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ParameterInformationWindowManager.cs
@@ -33,6 +33,7 @@ using Gtk;
using Gdk;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Editor.Extension;
+using System.Threading;
namespace MonoDevelop.Ide.CodeCompletion
{
@@ -113,9 +114,12 @@ namespace MonoDevelop.Ide.CodeCompletion
internal static void PostProcessKeyEvent (CompletionTextEditorExtension ext, ICompletionWidget widget, KeyDescriptor descriptor)
{
}
-
- internal static void UpdateCursorPosition (CompletionTextEditorExtension ext, ICompletionWidget widget)
- {
+ static CancellationTokenSource updateSrc = new CancellationTokenSource ();
+ internal static async void UpdateCursorPosition (CompletionTextEditorExtension ext, ICompletionWidget widget)
+ {
+ updateSrc.Cancel ();
+ updateSrc = new CancellationTokenSource ();
+ var token = updateSrc.Token;
// Called after the key has been processed by the editor
if (methods.Count == 0)
return;
@@ -125,7 +129,7 @@ namespace MonoDevelop.Ide.CodeCompletion
// information window for that method.
MethodData md = methods [n];
- int pos = ext.GetCurrentParameterIndex (md.MethodProvider.StartOffset);
+ int pos = await ext.GetCurrentParameterIndex (md.MethodProvider.StartOffset, token);
if (pos == -1) {
methods.RemoveAt (n);
n--;
@@ -207,7 +211,7 @@ namespace MonoDevelop.Ide.CodeCompletion
static bool wasVisi;
static int lastW = -1, lastH = -1;
- internal static void UpdateWindow (CompletionTextEditorExtension textEditorExtension, ICompletionWidget completionWidget)
+ internal static async void UpdateWindow (CompletionTextEditorExtension textEditorExtension, ICompletionWidget completionWidget)
{
// Updates the parameter information window from the information
// of the current method overload
@@ -231,7 +235,7 @@ namespace MonoDevelop.Ide.CodeCompletion
}
wasAbove = false;
var lastMethod = methods [methods.Count - 1];
- int curParam = window.Ext != null ? window.Ext.GetCurrentParameterIndex (lastMethod.MethodProvider.StartOffset) : 0;
+ int curParam = window.Ext != null ? await window.Ext.GetCurrentParameterIndex (lastMethod.MethodProvider.StartOffset) : 0;
var geometry2 = DesktopService.GetUsableMonitorGeometry (window.Screen.Number, window.Screen.GetMonitorAtPoint (X, Y));
window.ShowParameterInfo (lastMethod.MethodProvider, lastMethod.CurrentOverload, curParam - 1, (int)geometry2.Width);
PositionParameterInfoWindow (window.Allocation);
@@ -251,14 +255,14 @@ namespace MonoDevelop.Ide.CodeCompletion
}
- static void PositionParameterInfoWindow (Rectangle allocation)
+ static async void PositionParameterInfoWindow (Rectangle allocation)
{
lastW = allocation.Width;
lastH = allocation.Height;
wasVisi = CompletionWindowManager.IsVisible;
var ctx = window.Widget.CurrentCodeCompletionContext;
var md = methods [methods.Count - 1];
- int cparam = window.Ext != null ? window.Ext.GetCurrentParameterIndex (md.MethodProvider.StartOffset) : 0;
+ int cparam = window.Ext != null ? await window.Ext.GetCurrentParameterIndex (md.MethodProvider.StartOffset) : 0;
X = md.CompletionContext.TriggerXCoord;
if (CompletionWindowManager.IsVisible) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
index 2c82c997fb..9125e48690 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
@@ -454,7 +454,8 @@ namespace MonoDevelop.Ide.CodeTemplates
if (prettyPrinter != null && prettyPrinter.SupportsOnTheFlyFormatting) {
int endOffset = template.InsertPosition + template.Code.Length;
var oldVersion = data.Version;
- prettyPrinter.OnTheFlyFormat (editor, context, TextSegment.FromBounds (template.InsertPosition, endOffset));
+ prettyPrinter.OnTheFlyFormat (editor, context, TextSegment.FromBounds (template.InsertPosition, editor.CaretOffset));
+ prettyPrinter.OnTheFlyFormat (editor, context, TextSegment.FromBounds (editor.CaretOffset, endOffset));
foreach (var textLink in template.TextLinks) {
for (int i = 0; i < textLink.Links.Count; i++) {
var segment = textLink.Links [i];
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/BraceMatcherTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/BraceMatcherTextEditorExtension.cs
index 1aef1db2a4..4bc186bacf 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/BraceMatcherTextEditorExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/BraceMatcherTextEditorExtension.cs
@@ -94,9 +94,9 @@ namespace MonoDevelop.Ide.Editor.Extension
Task.Run (async delegate() {
BraceMatchingResult? result;
try {
- result = await matcher.GetMatchingBracesAsync (snapshot, ctx, caretOffset, token).ConfigureAwait (false);
+ result = await matcher.GetMatchingBracesAsync (snapshot, ctx, caretOffset - 1, token).ConfigureAwait (false);
if (result == null && caretOffset > 0)
- result = await matcher.GetMatchingBracesAsync (snapshot, ctx, caretOffset - 1, token).ConfigureAwait (false);
+ result = await matcher.GetMatchingBracesAsync (snapshot, ctx, caretOffset, token).ConfigureAwait (false);
if (result == null)
return;
} catch (OperationCanceledException) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs
index 9172c2e371..31a42a4ccd 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs
@@ -293,17 +293,11 @@ namespace MonoDevelop.Ide.Editor.Extension
autoHideCompletionWindow = autoHideParameterWindow = true;
}
- public virtual Task<int> GetCurrentParameterIndex (int startOffset, CancellationToken token)
+ public virtual Task<int> GetCurrentParameterIndex (int startOffset, CancellationToken token = default(CancellationToken))
{
return Task.FromResult (-1);
}
- [Obsolete("Use GetCurrentParameterIndex (int startOffset, CancellationToken token)")]
- public virtual int GetCurrentParameterIndex (int startOffset)
- {
- return GetCurrentParameterIndex (startOffset, default(CancellationToken)).Result;
- }
-
internal protected virtual void OnCompletionContextChanged (object o, EventArgs a)
{
if (!IsActiveExtension ())
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/DefaultCommandTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/DefaultCommandTextEditorExtension.cs
new file mode 100644
index 0000000000..11f68e1c2e
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/DefaultCommandTextEditorExtension.cs
@@ -0,0 +1,652 @@
+//
+// DefaultCommandTextEditorExtension.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Core.Text;
+using MonoDevelop.Ide.Commands;
+using MonoDevelop.Ide.TypeSystem;
+
+namespace MonoDevelop.Ide.Editor.Extension
+{
+ class DefaultCommandTextEditorExtension : TextEditorExtension
+ {
+ #region Commands
+ void ToggleCodeCommentWithBlockComments ()
+ {
+ var blockStarts = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "BlockCommentStart");
+ var blockEnds = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "BlockCommentEnd");
+ if (blockStarts == null || blockEnds == null || blockStarts.Length == 0 || blockEnds.Length == 0)
+ return;
+
+ string blockStart = blockStarts[0];
+ string blockEnd = blockEnds[0];
+
+ using (var undo = Editor.OpenUndoGroup ()) {
+ IDocumentLine startLine;
+ IDocumentLine endLine;
+
+ if (Editor.IsSomethingSelected) {
+ startLine = Editor.GetLineByOffset (Editor.SelectionRange.Offset);
+ endLine = Editor.GetLineByOffset (Editor.SelectionRange.EndOffset);
+
+ // If selection ends at begining of line... This is visible as previous line
+ // is selected, hence we want to select previous line Bug 26287
+ if (endLine.Offset == Editor.SelectionRange.EndOffset)
+ endLine = endLine.PreviousLine;
+ } else {
+ startLine = endLine = Editor.GetLine (Editor.CaretLine);
+ }
+ string startLineText = Editor.GetTextAt (startLine.Offset, startLine.Length);
+ string endLineText = Editor.GetTextAt (endLine.Offset, endLine.Length);
+ if (startLineText.StartsWith (blockStart, StringComparison.Ordinal) && endLineText.EndsWith (blockEnd, StringComparison.Ordinal)) {
+ Editor.RemoveText (endLine.Offset + endLine.Length - blockEnd.Length, blockEnd.Length);
+ Editor.RemoveText (startLine.Offset, blockStart.Length);
+ if (Editor.IsSomethingSelected) {
+ Editor.SelectionAnchorOffset -= blockEnd.Length;
+ }
+ } else {
+ Editor.InsertText (endLine.Offset + endLine.Length, blockEnd);
+ Editor.InsertText (startLine.Offset, blockStart);
+ if (Editor.IsSomethingSelected) {
+ Editor.SelectionAnchorOffset += blockEnd.Length;
+ }
+ }
+ }
+ }
+
+ bool TryGetLineCommentTag (out string commentTag)
+ {
+ var lineComments = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "LineComment");
+ if (lineComments == null || lineComments.Length == 0) {
+ commentTag = null;
+ return false;
+ }
+ commentTag = lineComments [0];
+ return true;
+ }
+
+ [CommandUpdateHandler (EditCommands.AddCodeComment)]
+ [CommandUpdateHandler (EditCommands.RemoveCodeComment)]
+ [CommandUpdateHandler (EditCommands.ToggleCodeComment)]
+ void OnUpdateToggleComment (CommandInfo info)
+ {
+ var lineComments = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "LineComment");
+ if (lineComments != null && lineComments.Length > 0) {
+ info.Visible = true;
+ return;
+ }
+ var blockStarts = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "BlockCommentStart");
+ var blockEnds = TextEditorFactory.GetSyntaxProperties (Editor.MimeType, "BlockCommentEnd");
+ info.Visible = blockStarts != null && blockStarts.Length > 0 && blockEnds != null && blockEnds.Length > 0;
+ }
+
+ [CommandHandler (EditCommands.ToggleCodeComment)]
+ internal void ToggleCodeComment ()
+ {
+ string commentTag;
+ if (!TryGetLineCommentTag (out commentTag))
+ return;
+ bool comment = false;
+ foreach (var line in GetSelectedLines (Editor)) {
+ int startOffset;
+ int offset = line.Offset;
+ if (!StartsWith (Editor, offset, line.Length, commentTag, out startOffset)) {
+ if (startOffset - offset == line.Length) // case: line consists only of white spaces
+ continue;
+ comment = true;
+ break;
+ }
+ }
+
+ if (comment) {
+ AddCodeComment ();
+ } else {
+ RemoveCodeComment ();
+ }
+ }
+
+ static bool StartsWith (ITextSource text, int offset, int length, string commentTag, out int startOffset)
+ {
+ int max = Math.Min (offset + length, text.Length);
+ int i = offset;
+ for (; i < max; i++) {
+ char ch = text.GetCharAt (i);
+ if (ch != ' ' && ch != '\t')
+ break;
+ }
+ startOffset = i;
+ for (int j = 0; j < commentTag.Length && i < text.Length; j++) {
+ if (text.GetCharAt (i) != commentTag [j])
+ return false;
+ i++;
+ }
+
+ return true;
+ }
+
+ static IEnumerable<IDocumentLine> GetSelectedLines (TextEditor Editor)
+ {
+ if (!Editor.IsSomethingSelected) {
+ yield return Editor.GetLine (Editor.CaretLine);
+ yield break;
+ }
+ var selection = Editor.SelectionRegion;
+ var line = Editor.GetLine(selection.EndLine);
+ if (selection.EndColumn == 1)
+ line = line.PreviousLine;
+
+ while (line != null && line.LineNumber >= selection.BeginLine) {
+ yield return line;
+ line = line.PreviousLine;
+ }
+ }
+
+ [CommandHandler (EditCommands.AddCodeComment)]
+ internal void AddCodeComment ()
+ {
+ string commentTag;
+ if (!TryGetLineCommentTag (out commentTag))
+ return;
+
+ using (var undo = Editor.OpenUndoGroup ()) {
+ var wasSelected = Editor.IsSomethingSelected;
+ var lead = Editor.SelectionLeadOffset;
+ var anchor = Editor.SelectionAnchorOffset;
+ var lineAndIndents = new List<Tuple<IDocumentLine, string>>();
+ string indent = null;
+ var oldVersion = Editor.Version;
+ foreach (var line in GetSelectedLines (Editor)) {
+ var curIndent = line.GetIndentation (Editor);
+ if (line.Length == curIndent.Length) {
+ lineAndIndents.Add (Tuple.Create ((IDocumentLine)null, ""));
+ continue;
+ }
+ if (indent == null || curIndent.Length < indent.Length)
+ indent = curIndent;
+ lineAndIndents.Add (Tuple.Create (line, curIndent));
+ }
+
+ foreach (var line in lineAndIndents) {
+ if (line.Item1 == null)
+ continue;
+ Editor.InsertText (line.Item1.Offset + indent.Length, commentTag);
+ }
+ if (wasSelected) {
+ Editor.SelectionAnchorOffset = oldVersion.MoveOffsetTo (Editor.Version, anchor);
+ Editor.SelectionLeadOffset = oldVersion.MoveOffsetTo (Editor.Version, lead);
+ }
+ }
+ }
+
+ [CommandHandler (EditCommands.RemoveCodeComment)]
+ internal void RemoveCodeComment ()
+ {
+ string commentTag;
+ if (!TryGetLineCommentTag (out commentTag))
+ return;
+
+ using (var undo = Editor.OpenUndoGroup ()) {
+ var wasSelected = Editor.IsSomethingSelected;
+ var lead = Editor.SelectionLeadOffset;
+ var anchor = Editor.SelectionAnchorOffset;
+ int lines = 0;
+
+ //IDocumentLine first = null;
+ IDocumentLine last = null;
+ var oldVersion = Editor.Version;
+ foreach (var line in GetSelectedLines (Editor)) {
+ int startOffset;
+ if (StartsWith (Editor, line.Offset, line.Length, commentTag, out startOffset)) {
+ Editor.RemoveText (startOffset, commentTag.Length);
+ lines++;
+ }
+
+ //first = line;
+ if (last == null)
+ last = line;
+ }
+
+ if (wasSelected) {
+ // if (IdeApp.Workbench != null)
+ // CodeFormatterService.Format (Editor, IdeApp.Workbench.ActiveDocument, TextSegment.FromBounds (first.Offset, last.EndOffset));
+
+ Editor.SelectionAnchorOffset = oldVersion.MoveOffsetTo (Editor.Version, anchor);
+ Editor.SelectionLeadOffset = oldVersion.MoveOffsetTo (Editor.Version, lead);
+ }
+ }
+ }
+
+ [CommandHandler (EditCommands.InsertGuid)]
+ void InsertGuid ()
+ {
+ Editor.InsertAtCaret (Guid.NewGuid ().ToString ());
+ }
+
+ [CommandUpdateHandler (MessageBubbleCommands.Toggle)]
+ public void OnUpdateToggleErrorTextMarker (CommandInfo info)
+ {
+ var line = Editor.GetLine (Editor.CaretLine);
+ if (line == null) {
+ info.Visible = false;
+ return;
+ }
+
+ var marker = (IMessageBubbleLineMarker)Editor.GetLineMarkers (line).FirstOrDefault (m => m is IMessageBubbleLineMarker);
+ info.Visible = marker != null;
+ }
+
+ [CommandHandler (MessageBubbleCommands.Toggle)]
+ public void OnToggleErrorTextMarker ()
+ {
+ var line = Editor.GetLine (Editor.CaretLine);
+ if (line == null)
+ return;
+ var marker = (IMessageBubbleLineMarker)Editor.GetLineMarkers (line).FirstOrDefault (m => m is IMessageBubbleLineMarker);
+ if (marker != null) {
+ marker.IsVisible = !marker.IsVisible;
+ }
+ }
+ #endregion
+
+
+ #region Key bindings
+
+ [CommandHandler (TextEditorCommands.LineEnd)]
+ void OnLineEnd ()
+ {
+ EditActions.MoveCaretToLineEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.LineStart)]
+ void OnLineStart ()
+ {
+ EditActions.MoveCaretToLineStart (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteLeftChar)]
+ void OnDeleteLeftChar ()
+ {
+ EditActions.Backspace (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteRightChar)]
+ void OnDeleteRightChar ()
+ {
+ EditActions.Delete (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.CharLeft)]
+ void OnCharLeft ()
+ {
+ EditActions.MoveCaretLeft (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.CharRight)]
+ void OnCharRight ()
+ {
+ EditActions.MoveCaretRight (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.LineUp)]
+ void OnLineUp ()
+ {
+ EditActions.MoveCaretUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.LineDown)]
+ void OnLineDown ()
+ {
+ EditActions.MoveCaretDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DocumentStart)]
+ void OnDocumentStart ()
+ {
+ EditActions.MoveCaretToDocumentStart (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DocumentEnd)]
+ void OnDocumentEnd ()
+ {
+ EditActions.MoveCaretToDocumentEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.PageUp)]
+ void OnPageUp ()
+ {
+ EditActions.PageUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.PageDown)]
+ void OnPageDown ()
+ {
+ EditActions.PageDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteLine)]
+ void OnDeleteLine ()
+ {
+ EditActions.DeleteCurrentLine (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteToLineEnd)]
+ void OnDeleteToLineEnd ()
+ {
+ EditActions.DeleteCurrentLineToEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ScrollLineUp)]
+ void OnScrollLineUp ()
+ {
+ EditActions.ScrollLineUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ScrollLineDown)]
+ void OnScrollLineDown ()
+ {
+ EditActions.ScrollLineDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ScrollPageUp)]
+ void OnScrollPageUp ()
+ {
+ EditActions.ScrollPageUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ScrollPageDown)]
+ void OnScrollPageDown ()
+ {
+ EditActions.ScrollPageDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.GotoMatchingBrace)]
+ void OnGotoMatchingBrace ()
+ {
+ EditActions.GotoMatchingBrace (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveLeft)]
+ void OnSelectionMoveLeft ()
+ {
+ EditActions.SelectionMoveLeft (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveRight)]
+ void OnSelectionMoveRight ()
+ {
+ EditActions.SelectionMoveRight (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MovePrevWord)]
+ void OnMovePrevWord ()
+ {
+ EditActions.MovePrevWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MoveNextWord)]
+ void OnMoveNextWord ()
+ {
+ EditActions.MoveNextWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMovePrevWord)]
+ void OnSelectionMovePrevWord ()
+ {
+ EditActions.SelectionMovePrevWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveNextWord)]
+ void OnSelectionMoveNextWord ()
+ {
+ EditActions.SelectionMoveNextWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MovePrevSubword)]
+ void OnMovePrevSubword ()
+ {
+ EditActions.MovePrevSubWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MoveNextSubword)]
+ void OnMoveNextSubword ()
+ {
+ EditActions.MoveNextSubWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMovePrevSubword)]
+ void OnSelectionMovePrevSubword ()
+ {
+ EditActions.SelectionMovePrevSubWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveNextSubword)]
+ void OnSelectionMoveNextSubword ()
+ {
+ EditActions.SelectionMoveNextSubWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveUp)]
+ void OnSelectionMoveUp ()
+ {
+ EditActions.SelectionMoveUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveDown)]
+ void OnSelectionMoveDown ()
+ {
+ EditActions.SelectionMoveDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveHome)]
+ void OnSelectionMoveHome ()
+ {
+ EditActions.SelectionMoveLineStart (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveEnd)]
+ void OnSelectionMoveEnd ()
+ {
+ EditActions.SelectionMoveLineEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveToDocumentStart)]
+ void OnSelectionMoveToDocumentStart ()
+ {
+ EditActions.SelectionMoveToDocumentStart (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ExpandSelectionToLine)]
+ void OnExpandSelectionToLine ()
+ {
+ EditActions.ExpandSelectionToLine (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionMoveToDocumentEnd)]
+ void OnSelectionMoveToDocumentEnd ()
+ {
+ EditActions.SelectionMoveToDocumentEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SwitchCaretMode)]
+ void OnSwitchCaretMode ()
+ {
+ EditActions.SwitchCaretMode (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.InsertTab)]
+ void OnInsertTab ()
+ {
+ EditActions.InsertTab (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.RemoveTab)]
+ void OnRemoveTab ()
+ {
+ EditActions.RemoveTab (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.InsertNewLine)]
+ void OnInsertNewLine ()
+ {
+ EditActions.InsertNewLine (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.InsertNewLineAtEnd)]
+ void OnInsertNewLineAtEnd ()
+ {
+ EditActions.InsertNewLineAtEnd (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.InsertNewLinePreserveCaretPosition)]
+ void OnInsertNewLinePreserveCaretPosition ()
+ {
+ EditActions.InsertNewLinePreserveCaretPosition (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.CompleteStatement)]
+ void OnCompleteStatement ()
+ {
+ var doc = IdeApp.Workbench.ActiveDocument;
+ var generator = CodeGenerator.CreateGenerator (doc);
+ if (generator != null) {
+ generator.CompleteStatement (doc);
+ }
+ }
+
+ [CommandHandler (TextEditorCommands.DeletePrevWord)]
+ void OnDeletePrevWord ()
+ {
+ EditActions.DeletePreviousWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteNextWord)]
+ void OnDeleteNextWord ()
+ {
+ EditActions.DeleteNextWord (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeletePrevSubword)]
+ void OnDeletePrevSubword ()
+ {
+ EditActions.DeletePreviousSubword (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DeleteNextSubword)]
+ void OnDeleteNextSubword ()
+ {
+ EditActions.DeleteNextSubword (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionPageDownAction)]
+ void OnSelectionPageDownAction ()
+ {
+ EditActions.SelectionPageDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.SelectionPageUpAction)]
+ void OnSelectionPageUpAction ()
+ {
+ EditActions.SelectionPageUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.PulseCaret)]
+ void OnPulseCaretCommand ()
+ {
+ EditActions.StartCaretPulseAnimation (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.TransposeCharacters)]
+ void TransposeCharacters ()
+ {
+ EditActions.TransposeCharacters (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.DuplicateLine)]
+ void DuplicateLine ()
+ {
+ EditActions.DuplicateCurrentLine (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.RecenterEditor)]
+ void RecenterEditor ()
+ {
+ EditActions.RecenterEditor (Editor);
+ }
+
+ [CommandHandler (EditCommands.JoinWithNextLine)]
+ void JoinLines ()
+ {
+ EditActions.JoinLines (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MoveBlockUp)]
+ void OnMoveBlockUp ()
+ {
+ EditActions.MoveBlockUp (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.MoveBlockDown)]
+ void OnMoveBlockDown ()
+ {
+ EditActions.MoveBlockDown (Editor);
+ }
+
+ [CommandHandler (TextEditorCommands.ToggleBlockSelectionMode)]
+ void OnToggleBlockSelectionMode ()
+ {
+ EditActions.ToggleBlockSelectionMode (Editor);
+ }
+
+ [CommandHandler (EditCommands.IndentSelection)]
+ void IndentSelection ()
+ {
+ EditActions.IndentSelection (Editor);
+ }
+
+ [CommandHandler (EditCommands.UnIndentSelection)]
+ void UnIndentSelection ()
+ {
+ EditActions.UnIndentSelection (Editor);
+ }
+
+
+ [CommandHandler (EditCommands.SortSelectedLines)]
+ void SortSelectedLines ()
+ {
+ EditActions.SortSelectedLines (Editor);
+ }
+
+ [CommandUpdateHandler (EditCommands.SortSelectedLines)]
+ void UpdateSortSelectedLines (CommandInfo ci)
+ {
+ var region = Editor.SelectionRegion;
+ ci.Enabled = region.BeginLine != region.EndLine;
+ }
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/ErrorHandlerTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/ErrorHandlerTextEditorExtension.cs
new file mode 100644
index 0000000000..54747fd1ca
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/ErrorHandlerTextEditorExtension.cs
@@ -0,0 +1,235 @@
+//
+// ErrorHandlerTextEditorExtension.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Linq;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading;
+using System.Threading.Tasks;
+using Gtk;
+using Microsoft.CodeAnalysis;
+using MonoDevelop.Core;
+using MonoDevelop.Core.Text;
+using MonoDevelop.Ide.TypeSystem;
+
+namespace MonoDevelop.Ide.Editor.Extension
+{
+ class ErrorHandlerTextEditorExtension: TextEditorExtension, IQuickTaskProvider
+ {
+ CancellationTokenSource src = new CancellationTokenSource ();
+ bool isDisposed;
+
+ protected override void Initialize ()
+ {
+ DocumentContext.DocumentParsed += DocumentContext_DocumentParsed;
+ }
+
+ public override void Dispose ()
+ {
+ if (isDisposed)
+ return;
+ isDisposed = true;
+
+ this.tasks = ImmutableArray<QuickTask>.Empty;
+ OnTasksUpdated (EventArgs.Empty);
+
+ RemoveErrorUnderlines ();
+ RemoveErrorUndelinesResetTimerId ();
+ CancelDocumentParsedUpdate ();
+ DocumentContext.DocumentParsed -= DocumentContext_DocumentParsed;
+ base.Dispose ();
+ }
+
+ void CancelDocumentParsedUpdate ()
+ {
+ src.Cancel ();
+ src = new CancellationTokenSource ();
+ }
+
+ void DocumentContext_DocumentParsed (object sender, EventArgs e)
+ {
+ CancelDocumentParsedUpdate ();
+ var token = src.Token;
+ var caretLocation = Editor.CaretLocation;
+ Task.Run (async () => {
+ try {
+ await UpdateErrorUndelines (DocumentContext, DocumentContext.ParsedDocument, token);
+ await UpdateQuickTasks (DocumentContext, DocumentContext.ParsedDocument, token);
+ } catch (OperationCanceledException) {
+ // ignore
+ }
+ }, token);
+ }
+
+ #region Error handling
+ List<IErrorMarker> errors = new List<IErrorMarker> ();
+ uint resetTimerId;
+
+ void RemoveErrorUndelinesResetTimerId ()
+ {
+ if (resetTimerId > 0) {
+ GLib.Source.Remove (resetTimerId);
+ resetTimerId = 0;
+ }
+ }
+
+ void RemoveErrorUnderlines ()
+ {
+ errors.ForEach (err => Editor.RemoveMarker (err));
+ errors.Clear ();
+ }
+
+ void UnderLineError (Error info)
+ {
+ var error = TextMarkerFactory.CreateErrorMarker (Editor, info);
+ Editor.AddMarker (error);
+ errors.Add (error);
+ }
+
+ static string [] lexicalError = {
+ "CS0594", // ERR_FloatOverflow
+ "CS0595", // ERR_InvalidReal
+ "CS1009", // ERR_IllegalEscape
+ "CS1010", // ERR_NewlineInConst
+ "CS1011", // ERR_EmptyCharConst
+ "CS1012", // ERR_TooManyCharsInConst
+ "CS1015", // ERR_TypeExpected
+ "CS1021", // ERR_IntOverflow
+ "CS1032", // ERR_PPDefFollowsTokenpp
+ "CS1035", // ERR_OpenEndedComment
+ "CS1039", // ERR_UnterminatedStringLit
+ "CS1040", // ERR_BadDirectivePlacementpp
+ "CS1056", // ERR_UnexpectedCharacter
+ "CS1056", // ERR_UnexpectedCharacter_EscapedBackslash
+ "CS1646", // ERR_ExpectedVerbatimLiteral
+ "CS0078", // WRN_LowercaseEllSuffix
+ "CS1002", // ; expected
+ "CS1519", // Invalid token ';' in class, struct, or interface member declaration
+ "CS1031", // Type expected
+ "CS0106", // The modifier 'readonly' is not valid for this item
+ "CS1576", // The line number specified for #line directive is missing or invalid
+ "CS1513" // } expected
+ };
+
+ async Task UpdateErrorUndelines (DocumentContext ctx, ParsedDocument parsedDocument, CancellationToken token)
+ {
+ if (!DefaultSourceEditorOptions.Instance.UnderlineErrors || parsedDocument == null || isDisposed)
+ return;
+ try {
+ var errors = await parsedDocument.GetErrorsAsync(token).ConfigureAwait (false);
+ Application.Invoke (delegate {
+ if (token.IsCancellationRequested || isDisposed)
+ return;
+ RemoveErrorUndelinesResetTimerId ();
+ const uint timeout = 500;
+ resetTimerId = GLib.Timeout.Add (timeout, delegate {
+ if (token.IsCancellationRequested) {
+ resetTimerId = 0;
+ return false;
+ }
+ RemoveErrorUnderlines ();
+ // Else we underline the error
+ if (errors != null) {
+ foreach (var error in errors) {
+ if (ctx.IsAdHocProject && !lexicalError.Contains (error.Id))
+ continue;
+ UnderLineError (error);
+ }
+ }
+ resetTimerId = 0;
+ return false;
+ });
+ });
+ } catch (OperationCanceledException) {
+ // ignore
+ }
+ }
+ #endregion
+
+ #region IQuickTaskProvider implementation
+ ImmutableArray<QuickTask> tasks = ImmutableArray<QuickTask>.Empty;
+
+ public event EventHandler TasksUpdated;
+
+ protected virtual void OnTasksUpdated (EventArgs e)
+ {
+ TasksUpdated?.Invoke (this, e);
+ }
+
+ public ImmutableArray<QuickTask> QuickTasks {
+ get {
+ return tasks;
+ }
+ }
+
+ async Task UpdateQuickTasks (DocumentContext ctx, ParsedDocument doc, CancellationToken token)
+ {
+ if (isDisposed)
+ return;
+ var newTasks = ImmutableArray<QuickTask>.Empty.ToBuilder ();
+ if (doc != null) {
+ foreach (var cmt in await doc.GetTagCommentsAsync(token).ConfigureAwait (false)) {
+ if (token.IsCancellationRequested)
+ return;
+ int offset;
+ try {
+ offset = Editor.LocationToOffset (cmt.Region.Begin.Line, cmt.Region.Begin.Column);
+ } catch (Exception) {
+ return;
+ }
+ var newTask = new QuickTask (cmt.Text, offset, DiagnosticSeverity.Info);
+ newTasks.Add (newTask);
+ }
+
+ foreach (var error in await doc.GetErrorsAsync(token).ConfigureAwait (false)) {
+ if (token.IsCancellationRequested)
+ return;
+ if (ctx.IsAdHocProject && !lexicalError.Contains (error.Id))
+ continue;
+ int offset;
+ try {
+ offset = Editor.LocationToOffset (error.Region.Begin.Line, error.Region.Begin.Column);
+ } catch (Exception) {
+ return;
+ }
+ var newTask = new QuickTask (error.Message, offset, error.ErrorType == ErrorType.Error ? DiagnosticSeverity.Error : DiagnosticSeverity.Warning);
+ newTasks.Add (newTask);
+ }
+ }
+ if (token.IsCancellationRequested)
+ return;
+ Application.Invoke (delegate {
+ if (token.IsCancellationRequested || isDisposed)
+ return;
+ tasks = newTasks.ToImmutable ();
+ OnTasksUpdated (EventArgs.Empty);
+ });
+ }
+ #endregion
+
+ }
+}
+
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/FoldingTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/FoldingTextEditorExtension.cs
new file mode 100644
index 0000000000..c0e0804dbf
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/FoldingTextEditorExtension.cs
@@ -0,0 +1,151 @@
+//
+// FoldingTextEditorExtension.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Gtk;
+using MonoDevelop.Core;
+using MonoDevelop.Core.Text;
+using MonoDevelop.Ide.TypeSystem;
+
+namespace MonoDevelop.Ide.Editor.Extension
+{
+ class FoldingTextEditorExtension : TextEditorExtension
+ {
+ CancellationTokenSource src = new CancellationTokenSource ();
+ bool isDisposed;
+
+ protected override void Initialize ()
+ {
+ DocumentContext.DocumentParsed += DocumentContext_DocumentParsed;
+ }
+
+ public override void Dispose ()
+ {
+ if (isDisposed)
+ return;
+ isDisposed = true;
+ CancelDocumentParsedUpdate ();
+ DocumentContext.DocumentParsed -= DocumentContext_DocumentParsed;
+ base.Dispose ();
+ }
+
+ void CancelDocumentParsedUpdate ()
+ {
+ src.Cancel ();
+ src = new CancellationTokenSource ();
+ }
+
+ void DocumentContext_DocumentParsed (object sender, EventArgs e)
+ {
+ CancelDocumentParsedUpdate ();
+ var token = src.Token;
+ var caretLocation = Editor.CaretLocation;
+ var parsedDocument = DocumentContext.ParsedDocument;
+ Task.Run (async () => {
+ try {
+ if (!isDisposed)
+ await UpdateFoldings (Editor, parsedDocument, caretLocation, false, token);
+ } catch (OperationCanceledException) {}
+ }, token);
+ }
+
+ internal static async Task UpdateFoldings (TextEditor Editor, ParsedDocument parsedDocument, DocumentLocation caretLocation, bool firstTime = false, CancellationToken token = default (CancellationToken))
+ {
+ if (parsedDocument == null || !Editor.Options.ShowFoldMargin)
+ return;
+ // don't update parsed documents that contain errors - the foldings from there may be invalid.
+ if (parsedDocument.HasErrors)
+ return;
+
+ try {
+ var foldSegments = new List<IFoldSegment> ();
+
+ foreach (FoldingRegion region in await parsedDocument.GetFoldingsAsync (token)) {
+ if (token.IsCancellationRequested)
+ return;
+ var type = FoldingType.Unknown;
+ bool setFolded = false;
+ bool folded = false;
+ //decide whether the regions should be folded by default
+ switch (region.Type) {
+ case FoldType.Member:
+ type = FoldingType.TypeMember;
+ break;
+ case FoldType.Type:
+ type = FoldingType.TypeDefinition;
+ break;
+ case FoldType.UserRegion:
+ type = FoldingType.Region;
+ setFolded = DefaultSourceEditorOptions.Instance.DefaultRegionsFolding;
+ folded = true;
+ break;
+ case FoldType.Comment:
+ type = FoldingType.Comment;
+ setFolded = DefaultSourceEditorOptions.Instance.DefaultCommentFolding;
+ folded = true;
+ break;
+ case FoldType.CommentInsideMember:
+ type = FoldingType.Comment;
+ setFolded = DefaultSourceEditorOptions.Instance.DefaultCommentFolding;
+ folded = false;
+ break;
+ case FoldType.Undefined:
+ setFolded = true;
+ folded = region.IsFoldedByDefault;
+ break;
+ }
+ var start = Editor.LocationToOffset (region.Region.Begin);
+ var end = Editor.LocationToOffset (region.Region.End);
+ var marker = Editor.CreateFoldSegment (start, end - start);
+ foldSegments.Add (marker);
+ marker.CollapsedText = region.Name;
+ marker.FoldingType = type;
+ //and, if necessary, set its fold state
+ if (marker != null && setFolded && firstTime) {
+ // only fold on document open, later added folds are NOT folded by default.
+ marker.IsCollapsed = folded;
+ continue;
+ }
+ if (marker != null && region.Region.Contains (caretLocation.Line, caretLocation.Column))
+ marker.IsCollapsed = false;
+ }
+ if (firstTime) {
+ Editor.SetFoldings (foldSegments);
+ } else {
+ Application.Invoke (delegate {
+ if (!token.IsCancellationRequested)
+ Editor.SetFoldings (foldSegments);
+ });
+ }
+ } catch (Exception ex) {
+ LoggingService.LogError ("Unhandled exception in ParseInformationUpdaterWorkerThread", ex);
+ }
+ }
+
+ }
+} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedCompletionExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedCompletionExtension.cs
index 5eb350947c..f695491b7c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedCompletionExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedCompletionExtension.cs
@@ -291,12 +291,12 @@ namespace MonoDevelop.Ide.Editor.Projection
return projectedExtension.GetCompletionCommandOffset (out cpos, out wlen);
}
- public override int GetCurrentParameterIndex (int startOffset)
+ public override Task<int> GetCurrentParameterIndex (int startOffset, System.Threading.CancellationToken token)
{
var projectedExtension = GetExtensionAt (startOffset);
if (projectedExtension == null)
- return -1;
- return projectedExtension.GetCurrentParameterIndex (startOffset);
+ return Task.FromResult (-1);
+ return projectedExtension.GetCurrentParameterIndex (startOffset, token);
}
public override int GuessBestMethodOverload (ParameterHintingResult provider, int currentOverload)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedFilterCompletionTextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedFilterCompletionTextEditorExtension.cs
index a164dc546e..262bfe79ac 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedFilterCompletionTextEditorExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/Projection/ProjectedFilterCompletionTextEditorExtension.cs
@@ -81,11 +81,11 @@ namespace MonoDevelop.Ide.Editor.Projection
return completionTextEditorExtension.IsValidInContext (context);
}
- public override int GetCurrentParameterIndex (int startOffset)
+ public override Task<int> GetCurrentParameterIndex (int startOffset, System.Threading.CancellationToken token)
{
if (!IsActiveExtension())
- return -1;
- return completionTextEditorExtension.GetCurrentParameterIndex (startOffset);
+ return Task.FromResult (-1);
+ return completionTextEditorExtension.GetCurrentParameterIndex (startOffset, token);
}
public override string CompletionLanguage {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditor.cs
index 22756ad0be..db5f65f1dd 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditor.cs
@@ -926,7 +926,7 @@ namespace MonoDevelop.Ide.Editor
base.Dispose (disposing);
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return textEditorImpl.CreateNativeControl ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs
index 66c01967b0..5642fba6b9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs
@@ -55,7 +55,7 @@ namespace MonoDevelop.Ide.Editor
/// The TextEditor object needs to be available through BaseViewContent.GetContent therefore we need to insert a
/// decorator in between.
/// </summary>
- class TextEditorViewContent : ViewContent, ICommandRouter, IQuickTaskProvider
+ class TextEditorViewContent : ViewContent, ICommandRouter
{
readonly TextEditor textEditor;
readonly ITextEditorImpl textEditorImpl;
@@ -78,10 +78,7 @@ namespace MonoDevelop.Ide.Editor
void HandleDocumentContextChanged (object sender, EventArgs e)
{
- if (currentContext != null)
- currentContext.DocumentParsed -= HandleDocumentParsed;
currentContext = textEditor.DocumentContext;
- currentContext.DocumentParsed += HandleDocumentParsed;
}
void HandleDirtyChanged (object sender, EventArgs e)
@@ -90,7 +87,7 @@ namespace MonoDevelop.Ide.Editor
InformAutoSave ();
}
- void HandleTextChanged (object sender, MonoDevelop.Core.Text.TextChangeEventArgs e)
+ void HandleTextChanged (object sender, TextChangeEventArgs e)
{
InformAutoSave ();
}
@@ -158,186 +155,13 @@ namespace MonoDevelop.Ide.Editor
textEditor.Options = DefaultSourceEditorOptions.Instance.WithTextStyle (currentPolicy);
}
- void HandleDocumentParsed (object sender, EventArgs e)
- {
- var ctx = (DocumentContext)sender;
- CancelDocumentParsedUpdate ();
- var token = src.Token;
- var caretLocation = textEditor.CaretLocation;
- Task.Run (async () => {
- try {
- await UpdateErrorUndelines (ctx, ctx.ParsedDocument, token);
- await UpdateQuickTasks (ctx, ctx.ParsedDocument, token);
- await UpdateFoldings (ctx.ParsedDocument, caretLocation, false, token);
- } catch (OperationCanceledException) {
- // ignore
- }
- }, token);
- }
-
void CancelDocumentParsedUpdate ()
{
src.Cancel ();
src = new CancellationTokenSource ();
}
- #region Error handling
- List<IErrorMarker> errors = new List<IErrorMarker> ();
- uint resetTimerId;
-
- void RemoveErrorUndelinesResetTimerId ()
- {
- if (resetTimerId > 0) {
- GLib.Source.Remove (resetTimerId);
- resetTimerId = 0;
- }
- }
-
- void RemoveErrorUnderlines ()
- {
- errors.ForEach (err => textEditor.RemoveMarker (err));
- errors.Clear ();
- }
-
- void UnderLineError (MonoDevelop.Ide.TypeSystem.Error info)
- {
- var error = TextMarkerFactory.CreateErrorMarker (textEditor, info);
- textEditor.AddMarker (error);
- errors.Add (error);
- }
-
- static string [] lexicalError = {
- "CS0594", // ERR_FloatOverflow
- "CS0595", // ERR_InvalidReal
- "CS1009", // ERR_IllegalEscape
- "CS1010", // ERR_NewlineInConst
- "CS1011", // ERR_EmptyCharConst
- "CS1012", // ERR_TooManyCharsInConst
- "CS1015", // ERR_TypeExpected
- "CS1021", // ERR_IntOverflow
- "CS1032", // ERR_PPDefFollowsTokenpp
- "CS1035", // ERR_OpenEndedComment
- "CS1039", // ERR_UnterminatedStringLit
- "CS1040", // ERR_BadDirectivePlacementpp
- "CS1056", // ERR_UnexpectedCharacter
- "CS1056", // ERR_UnexpectedCharacter_EscapedBackslash
- "CS1646", // ERR_ExpectedVerbatimLiteral
- "CS0078", // WRN_LowercaseEllSuffix
- "CS1002", // ; expected
- "CS1519", // Invalid token ';' in class, struct, or interface member declaration
- "CS1031", // Type expected
- "CS0106", // The modifier 'readonly' is not valid for this item
- "CS1576", // The line number specified for #line directive is missing or invalid
- "CS1513" // } expected
- };
-
- async Task UpdateErrorUndelines (DocumentContext ctx, ParsedDocument parsedDocument, CancellationToken token)
- {
- if (!DefaultSourceEditorOptions.Instance.UnderlineErrors || parsedDocument == null || isDisposed)
- return;
- try {
- var errors = await parsedDocument.GetErrorsAsync(token).ConfigureAwait (false);
- Application.Invoke (delegate {
- if (token.IsCancellationRequested || isDisposed)
- return;
- RemoveErrorUndelinesResetTimerId ();
- const uint timeout = 500;
- resetTimerId = GLib.Timeout.Add (timeout, delegate {
- if (token.IsCancellationRequested) {
- resetTimerId = 0;
- return false;
- }
- RemoveErrorUnderlines ();
- // Else we underline the error
- if (errors != null) {
- foreach (var error in errors) {
- if (ctx.IsAdHocProject && !lexicalError.Contains (error.Id))
- continue;
- UnderLineError (error);
- }
- }
- resetTimerId = 0;
- return false;
- });
- });
- } catch (OperationCanceledException) {
- // ignore
- }
- }
- #endregion
CancellationTokenSource src = new CancellationTokenSource ();
- async Task UpdateFoldings (ParsedDocument parsedDocument, DocumentLocation caretLocation, bool firstTime = false, CancellationToken token = default (CancellationToken))
- {
- if (parsedDocument == null || !textEditor.Options.ShowFoldMargin || isDisposed)
- return;
- // don't update parsed documents that contain errors - the foldings from there may be invalid.
- if (parsedDocument.HasErrors)
- return;
-
- try {
- var foldSegments = new List<IFoldSegment> ();
-
- foreach (FoldingRegion region in await parsedDocument.GetFoldingsAsync(token)) {
- if (token.IsCancellationRequested)
- return;
- var type = FoldingType.Unknown;
- bool setFolded = false;
- bool folded = false;
- //decide whether the regions should be folded by default
- switch (region.Type) {
- case FoldType.Member:
- type = FoldingType.TypeMember;
- break;
- case FoldType.Type:
- type = FoldingType.TypeDefinition;
- break;
- case FoldType.UserRegion:
- type = FoldingType.Region;
- setFolded = DefaultSourceEditorOptions.Instance.DefaultRegionsFolding;
- folded = true;
- break;
- case FoldType.Comment:
- type = FoldingType.Comment;
- setFolded = DefaultSourceEditorOptions.Instance.DefaultCommentFolding;
- folded = true;
- break;
- case FoldType.CommentInsideMember:
- type = FoldingType.Comment;
- setFolded = DefaultSourceEditorOptions.Instance.DefaultCommentFolding;
- folded = false;
- break;
- case FoldType.Undefined:
- setFolded = true;
- folded = region.IsFoldedByDefault;
- break;
- }
- var start = textEditor.LocationToOffset (region.Region.Begin);
- var end = textEditor.LocationToOffset (region.Region.End);
- var marker = textEditor.CreateFoldSegment (start, end - start);
- foldSegments.Add (marker);
- marker.CollapsedText = region.Name;
- marker.FoldingType = type;
- //and, if necessary, set its fold state
- if (marker != null && setFolded && firstTime) {
- // only fold on document open, later added folds are NOT folded by default.
- marker.IsCollapsed = folded;
- continue;
- }
- if (marker != null && region.Region.Contains (caretLocation.Line, caretLocation.Column))
- marker.IsCollapsed = false;
- }
- if (firstTime) {
- textEditor.SetFoldings (foldSegments);
- } else {
- Application.Invoke (delegate {
- if (!token.IsCancellationRequested)
- textEditor.SetFoldings (foldSegments);
- });
- }
- } catch (Exception ex) {
- LoggingService.LogError ("Unhandled exception in ParseInformationUpdaterWorkerThread", ex);
- }
- }
async Task RunFirstTimeFoldUpdate (string text)
{
@@ -352,7 +176,7 @@ namespace MonoDevelop.Ide.Editor
var normalParser = TypeSystemService.GetParser (textEditor.MimeType);
if (normalParser != null) {
parsedDocument = await normalParser.Parse(
- new MonoDevelop.Ide.TypeSystem.ParseOptions {
+ new TypeSystem.ParseOptions {
FileName = textEditor.FileName,
Content = new StringTextSource(text),
Project = Project
@@ -360,7 +184,7 @@ namespace MonoDevelop.Ide.Editor
}
}
if (parsedDocument != null) {
- await UpdateFoldings (parsedDocument, textEditor.CaretLocation, true);
+ await FoldingTextEditorExtension.UpdateFoldings (textEditor, parsedDocument, textEditor.CaretLocation, true);
}
}
@@ -492,11 +316,9 @@ namespace MonoDevelop.Ide.Editor
textEditor.TextChanged -= HandleTextChanged;
textEditor.DocumentContextChanged -= HandleDocumentContextChanged;
- currentContext.DocumentParsed -= HandleDocumentParsed;
DefaultSourceEditorOptions.Instance.Changed -= UpdateTextEditorOptions;
RemovePolicyChangeHandler ();
RemoveAutoSaveTimer ();
- RemoveErrorUndelinesResetTimerId ();
}
#endregion
@@ -510,681 +332,7 @@ namespace MonoDevelop.Ide.Editor
#endregion
- #region Commands
- void ToggleCodeCommentWithBlockComments ()
- {
- var blockStarts = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "BlockCommentStart");
- var blockEnds = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "BlockCommentEnd");
- if (blockStarts == null || blockEnds == null || blockStarts.Length == 0 || blockEnds.Length == 0)
- return;
-
- string blockStart = blockStarts[0];
- string blockEnd = blockEnds[0];
-
- using (var undo = textEditor.OpenUndoGroup ()) {
- IDocumentLine startLine;
- IDocumentLine endLine;
- if (textEditor.IsSomethingSelected) {
- startLine = textEditor.GetLineByOffset (textEditor.SelectionRange.Offset);
- endLine = textEditor.GetLineByOffset (textEditor.SelectionRange.EndOffset);
-
- // If selection ends at begining of line... This is visible as previous line
- // is selected, hence we want to select previous line Bug 26287
- if (endLine.Offset == textEditor.SelectionRange.EndOffset)
- endLine = endLine.PreviousLine;
- } else {
- startLine = endLine = textEditor.GetLine (textEditor.CaretLine);
- }
- string startLineText = textEditor.GetTextAt (startLine.Offset, startLine.Length);
- string endLineText = textEditor.GetTextAt (endLine.Offset, endLine.Length);
- if (startLineText.StartsWith (blockStart, StringComparison.Ordinal) && endLineText.EndsWith (blockEnd, StringComparison.Ordinal)) {
- textEditor.RemoveText (endLine.Offset + endLine.Length - blockEnd.Length, blockEnd.Length);
- textEditor.RemoveText (startLine.Offset, blockStart.Length);
- if (textEditor.IsSomethingSelected) {
- textEditor.SelectionAnchorOffset -= blockEnd.Length;
- }
- } else {
- textEditor.InsertText (endLine.Offset + endLine.Length, blockEnd);
- textEditor.InsertText (startLine.Offset, blockStart);
- if (textEditor.IsSomethingSelected) {
- textEditor.SelectionAnchorOffset += blockEnd.Length;
- }
- }
- }
- }
-
- bool TryGetLineCommentTag (out string commentTag)
- {
- var lineComments = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "LineComment");
- if (lineComments == null || lineComments.Length == 0) {
- commentTag = null;
- return false;
- }
- commentTag = lineComments [0];
- return true;
- }
-
- [CommandUpdateHandler (EditCommands.AddCodeComment)]
- [CommandUpdateHandler (EditCommands.RemoveCodeComment)]
- [CommandUpdateHandler (EditCommands.ToggleCodeComment)]
- void OnUpdateToggleComment (CommandInfo info)
- {
- var lineComments = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "LineComment");
- if (lineComments != null && lineComments.Length > 0) {
- info.Visible = true;
- return;
- }
- var blockStarts = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "BlockCommentStart");
- var blockEnds = TextEditorFactory.GetSyntaxProperties (textEditor.MimeType, "BlockCommentEnd");
- info.Visible = blockStarts != null && blockStarts.Length > 0 && blockEnds != null && blockEnds.Length > 0;
- }
-
- [CommandHandler (EditCommands.ToggleCodeComment)]
- internal void ToggleCodeComment ()
- {
- string commentTag;
- if (!TryGetLineCommentTag (out commentTag))
- return;
- bool comment = false;
- foreach (var line in GetSelectedLines (textEditor)) {
- int startOffset;
- int offset = line.Offset;
- if (!StartsWith (textEditor, offset, line.Length, commentTag, out startOffset)) {
- if (startOffset - offset == line.Length) // case: line consists only of white spaces
- continue;
- comment = true;
- break;
- }
- }
-
- if (comment) {
- AddCodeComment ();
- } else {
- RemoveCodeComment ();
- }
- }
-
- static bool StartsWith (ITextSource text, int offset, int length, string commentTag, out int startOffset)
- {
- int max = Math.Min (offset + length, text.Length);
- int i = offset;
- for (; i < max; i++) {
- char ch = text.GetCharAt (i);
- if (ch != ' ' && ch != '\t')
- break;
- }
- startOffset = i;
- for (int j = 0; j < commentTag.Length && i < text.Length; j++) {
- if (text.GetCharAt (i) != commentTag [j])
- return false;
- i++;
- }
-
- return true;
- }
-
- static IEnumerable<IDocumentLine> GetSelectedLines (TextEditor textEditor)
- {
- if (!textEditor.IsSomethingSelected) {
- yield return textEditor.GetLine (textEditor.CaretLine);
- yield break;
- }
- var selection = textEditor.SelectionRegion;
- var line = textEditor.GetLine(selection.EndLine);
- if (selection.EndColumn == 1 && textEditor.SelectionLeadOffset < textEditor.SelectionAnchorOffset)
- line = line.PreviousLine;
-
- while (line != null && line.LineNumber >= selection.BeginLine) {
- yield return line;
- line = line.PreviousLine;
- }
- }
-
- [CommandHandler (EditCommands.AddCodeComment)]
- internal void AddCodeComment ()
- {
- string commentTag;
- if (!TryGetLineCommentTag (out commentTag))
- return;
-
- using (var undo = textEditor.OpenUndoGroup ()) {
- var wasSelected = textEditor.IsSomethingSelected;
- var lead = textEditor.SelectionLeadOffset;
- var anchor = textEditor.SelectionAnchorOffset;
- var lineAndIndents = new List<Tuple<IDocumentLine, string>>();
- string indent = null;
- var oldVersion = textEditor.Version;
- foreach (var line in GetSelectedLines (textEditor)) {
- var curIndent = line.GetIndentation (textEditor);
- if (line.Length == curIndent.Length) {
- lineAndIndents.Add (Tuple.Create ((IDocumentLine)null, ""));
- continue;
- }
- if (indent == null || curIndent.Length < indent.Length)
- indent = curIndent;
- lineAndIndents.Add (Tuple.Create (line, curIndent));
- }
-
- foreach (var line in lineAndIndents) {
- if (line.Item1 == null)
- continue;
- textEditor.InsertText (line.Item1.Offset + indent.Length, commentTag);
- }
- if (wasSelected) {
- textEditor.SelectionAnchorOffset = oldVersion.MoveOffsetTo (textEditor.Version, anchor);
- textEditor.SelectionLeadOffset = oldVersion.MoveOffsetTo (textEditor.Version, lead);
- }
- }
- }
-
- [CommandHandler (EditCommands.RemoveCodeComment)]
- internal void RemoveCodeComment ()
- {
- string commentTag;
- if (!TryGetLineCommentTag (out commentTag))
- return;
-
- using (var undo = textEditor.OpenUndoGroup ()) {
- var wasSelected = textEditor.IsSomethingSelected;
- var lead = textEditor.SelectionLeadOffset;
- var anchor = textEditor.SelectionAnchorOffset;
- int lines = 0;
-
- //IDocumentLine first = null;
- IDocumentLine last = null;
- var oldVersion = textEditor.Version;
- foreach (var line in GetSelectedLines (textEditor)) {
- int startOffset;
- if (StartsWith (textEditor, line.Offset, line.Length, commentTag, out startOffset)) {
- textEditor.RemoveText (startOffset, commentTag.Length);
- lines++;
- }
-
- //first = line;
- if (last == null)
- last = line;
- }
-
- if (wasSelected) {
-// if (IdeApp.Workbench != null)
-// CodeFormatterService.Format (textEditor, IdeApp.Workbench.ActiveDocument, TextSegment.FromBounds (first.Offset, last.EndOffset));
-
- textEditor.SelectionAnchorOffset = oldVersion.MoveOffsetTo (textEditor.Version, anchor);
- textEditor.SelectionLeadOffset = oldVersion.MoveOffsetTo (textEditor.Version, lead);
- }
- }
- }
-
- [CommandHandler (EditCommands.InsertGuid)]
- void InsertGuid ()
- {
- textEditor.InsertAtCaret (Guid.NewGuid ().ToString ());
- }
-
- [CommandUpdateHandler (MessageBubbleCommands.Toggle)]
- public void OnUpdateToggleErrorTextMarker (CommandInfo info)
- {
- var line = textEditor.GetLine (textEditor.CaretLine);
- if (line == null) {
- info.Visible = false;
- return;
- }
-
- var marker = (IMessageBubbleLineMarker)textEditor.GetLineMarkers (line).FirstOrDefault (m => m is IMessageBubbleLineMarker);
- info.Visible = marker != null;
- }
-
- [CommandHandler (MessageBubbleCommands.Toggle)]
- public void OnToggleErrorTextMarker ()
- {
- var line = textEditor.GetLine (textEditor.CaretLine);
- if (line == null)
- return;
- var marker = (IMessageBubbleLineMarker)textEditor.GetLineMarkers (line).FirstOrDefault (m => m is IMessageBubbleLineMarker);
- if (marker != null) {
- marker.IsVisible = !marker.IsVisible;
- }
- }
- #endregion
-
- #region IQuickTaskProvider implementation
- ImmutableArray<QuickTask> tasks = ImmutableArray<QuickTask>.Empty;
-
- public event EventHandler TasksUpdated;
-
- protected virtual void OnTasksUpdated (EventArgs e)
- {
- EventHandler handler = this.TasksUpdated;
- if (handler != null)
- handler (this, e);
- }
-
- public ImmutableArray<QuickTask> QuickTasks {
- get {
- return tasks;
- }
- }
-
- async Task UpdateQuickTasks (DocumentContext ctx, ParsedDocument doc, CancellationToken token)
- {
- if (isDisposed)
- return;
- var newTasks = ImmutableArray<QuickTask>.Empty.ToBuilder ();
- if (doc != null) {
- foreach (var cmt in await doc.GetTagCommentsAsync(token).ConfigureAwait (false)) {
- if (token.IsCancellationRequested)
- return;
- int offset;
- try {
- offset = textEditor.LocationToOffset (cmt.Region.Begin.Line, cmt.Region.Begin.Column);
- } catch (Exception) {
- return;
- }
- var newTask = new QuickTask (cmt.Text, offset, DiagnosticSeverity.Info);
- newTasks.Add (newTask);
- }
-
- foreach (var error in await doc.GetErrorsAsync(token).ConfigureAwait (false)) {
- if (token.IsCancellationRequested)
- return;
- if (ctx.IsAdHocProject && !lexicalError.Contains (error.Id))
- continue;
- int offset;
- try {
- offset = textEditor.LocationToOffset (error.Region.Begin.Line, error.Region.Begin.Column);
- } catch (Exception) {
- return;
- }
- var newTask = new QuickTask (error.Message, offset, error.ErrorType == MonoDevelop.Ide.TypeSystem.ErrorType.Error ? DiagnosticSeverity.Error : DiagnosticSeverity.Warning);
- newTasks.Add (newTask);
- }
- }
- if (token.IsCancellationRequested)
- return;
- Application.Invoke (delegate {
- if (token.IsCancellationRequested || isDisposed)
- return;
- tasks = newTasks.ToImmutable ();
- OnTasksUpdated (EventArgs.Empty);
- });
- }
- #endregion
-
- #region Key bindings
-
- [CommandHandler (TextEditorCommands.LineEnd)]
- void OnLineEnd ()
- {
- EditActions.MoveCaretToLineEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.LineStart)]
- void OnLineStart ()
- {
- EditActions.MoveCaretToLineStart (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteLeftChar)]
- void OnDeleteLeftChar ()
- {
- EditActions.Backspace (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteRightChar)]
- void OnDeleteRightChar ()
- {
- EditActions.Delete (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.CharLeft)]
- void OnCharLeft ()
- {
- EditActions.MoveCaretLeft (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.CharRight)]
- void OnCharRight ()
- {
- EditActions.MoveCaretRight (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.LineUp)]
- void OnLineUp ()
- {
- EditActions.MoveCaretUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.LineDown)]
- void OnLineDown ()
- {
- EditActions.MoveCaretDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DocumentStart)]
- void OnDocumentStart ()
- {
- EditActions.MoveCaretToDocumentStart (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DocumentEnd)]
- void OnDocumentEnd ()
- {
- EditActions.MoveCaretToDocumentEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.PageUp)]
- void OnPageUp ()
- {
- EditActions.PageUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.PageDown)]
- void OnPageDown ()
- {
- EditActions.PageDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteLine)]
- void OnDeleteLine ()
- {
- EditActions.DeleteCurrentLine (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteToLineEnd)]
- void OnDeleteToLineEnd ()
- {
- EditActions.DeleteCurrentLineToEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ScrollLineUp)]
- void OnScrollLineUp ()
- {
- EditActions.ScrollLineUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ScrollLineDown)]
- void OnScrollLineDown ()
- {
- EditActions.ScrollLineDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ScrollPageUp)]
- void OnScrollPageUp ()
- {
- EditActions.ScrollPageUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ScrollPageDown)]
- void OnScrollPageDown ()
- {
- EditActions.ScrollPageDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.GotoMatchingBrace)]
- void OnGotoMatchingBrace ()
- {
- EditActions.GotoMatchingBrace (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveLeft)]
- void OnSelectionMoveLeft ()
- {
- EditActions.SelectionMoveLeft (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveRight)]
- void OnSelectionMoveRight ()
- {
- EditActions.SelectionMoveRight (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MovePrevWord)]
- void OnMovePrevWord ()
- {
- EditActions.MovePrevWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MoveNextWord)]
- void OnMoveNextWord ()
- {
- EditActions.MoveNextWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMovePrevWord)]
- void OnSelectionMovePrevWord ()
- {
- EditActions.SelectionMovePrevWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveNextWord)]
- void OnSelectionMoveNextWord ()
- {
- EditActions.SelectionMoveNextWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MovePrevSubword)]
- void OnMovePrevSubword ()
- {
- EditActions.MovePrevSubWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MoveNextSubword)]
- void OnMoveNextSubword ()
- {
- EditActions.MoveNextSubWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMovePrevSubword)]
- void OnSelectionMovePrevSubword ()
- {
- EditActions.SelectionMovePrevSubWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveNextSubword)]
- void OnSelectionMoveNextSubword ()
- {
- EditActions.SelectionMoveNextSubWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveUp)]
- void OnSelectionMoveUp ()
- {
- EditActions.SelectionMoveUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveDown)]
- void OnSelectionMoveDown ()
- {
- EditActions.SelectionMoveDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveHome)]
- void OnSelectionMoveHome ()
- {
- EditActions.SelectionMoveLineStart (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveEnd)]
- void OnSelectionMoveEnd ()
- {
- EditActions.SelectionMoveLineEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveToDocumentStart)]
- void OnSelectionMoveToDocumentStart ()
- {
- EditActions.SelectionMoveToDocumentStart (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ExpandSelectionToLine)]
- void OnExpandSelectionToLine ()
- {
- EditActions.ExpandSelectionToLine (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionMoveToDocumentEnd)]
- void OnSelectionMoveToDocumentEnd ()
- {
- EditActions.SelectionMoveToDocumentEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SwitchCaretMode)]
- void OnSwitchCaretMode ()
- {
- EditActions.SwitchCaretMode (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.InsertTab)]
- void OnInsertTab ()
- {
- EditActions.InsertTab (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.RemoveTab)]
- void OnRemoveTab ()
- {
- EditActions.RemoveTab (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.InsertNewLine)]
- void OnInsertNewLine ()
- {
- EditActions.InsertNewLine (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.InsertNewLineAtEnd)]
- void OnInsertNewLineAtEnd ()
- {
- EditActions.InsertNewLineAtEnd (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.InsertNewLinePreserveCaretPosition)]
- void OnInsertNewLinePreserveCaretPosition ()
- {
- EditActions.InsertNewLinePreserveCaretPosition (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.CompleteStatement)]
- void OnCompleteStatement ()
- {
- var doc = IdeApp.Workbench.ActiveDocument;
- var generator = CodeGenerator.CreateGenerator (doc);
- if (generator != null) {
- generator.CompleteStatement (doc);
- }
- }
-
- [CommandHandler (TextEditorCommands.DeletePrevWord)]
- void OnDeletePrevWord ()
- {
- EditActions.DeletePreviousWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteNextWord)]
- void OnDeleteNextWord ()
- {
- EditActions.DeleteNextWord (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeletePrevSubword)]
- void OnDeletePrevSubword ()
- {
- EditActions.DeletePreviousSubword (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DeleteNextSubword)]
- void OnDeleteNextSubword ()
- {
- EditActions.DeleteNextSubword (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionPageDownAction)]
- void OnSelectionPageDownAction ()
- {
- EditActions.SelectionPageDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.SelectionPageUpAction)]
- void OnSelectionPageUpAction ()
- {
- EditActions.SelectionPageUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.PulseCaret)]
- void OnPulseCaretCommand ()
- {
- EditActions.StartCaretPulseAnimation (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.TransposeCharacters)]
- void TransposeCharacters ()
- {
- EditActions.TransposeCharacters (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.DuplicateLine)]
- void DuplicateLine ()
- {
- EditActions.DuplicateCurrentLine (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.RecenterEditor)]
- void RecenterEditor ()
- {
- EditActions.RecenterEditor (textEditor);
- }
-
- [CommandHandler (EditCommands.JoinWithNextLine)]
- void JoinLines ()
- {
- EditActions.JoinLines (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MoveBlockUp)]
- void OnMoveBlockUp ()
- {
- EditActions.MoveBlockUp (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.MoveBlockDown)]
- void OnMoveBlockDown ()
- {
- EditActions.MoveBlockDown (textEditor);
- }
-
- [CommandHandler (TextEditorCommands.ToggleBlockSelectionMode)]
- void OnToggleBlockSelectionMode ()
- {
- EditActions.ToggleBlockSelectionMode (textEditor);
- }
-
- [CommandHandler (EditCommands.IndentSelection)]
- void IndentSelection ()
- {
- EditActions.IndentSelection (textEditor);
- }
-
- [CommandHandler (EditCommands.UnIndentSelection)]
- void UnIndentSelection ()
- {
- EditActions.UnIndentSelection (textEditor);
- }
-
-
- [CommandHandler (EditCommands.SortSelectedLines)]
- void SortSelectedLines ()
- {
- EditActions.SortSelectedLines (textEditor);
- }
-
- [CommandUpdateHandler (EditCommands.SortSelectedLines)]
- void UpdateSortSelectedLines (CommandInfo ci)
- {
- var region = textEditor.SelectionRegion;
- ci.Enabled = region.BeginLine != region.EndLine;
- }
- #endregion
}
} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs
index c67934a5d8..3a070068e5 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs
@@ -32,6 +32,7 @@ using System.Text;
using MonoDevelop.Core;
using System;
using MonoDevelop.Core.Text;
+using System.Threading.Tasks;
namespace MonoDevelop.Ide.FindInFiles
{
@@ -92,7 +93,12 @@ namespace MonoDevelop.Ide.FindInFiles
if (buffer != null) {
result = buffer.ToString ();
} else {
- var doc = SearchDocument ();
+ Document doc = null;
+
+ var task = SearchDocument ();
+ if (task.Wait (1000))
+ doc = task.Result;
+
if (doc != null && doc.Editor != null) {
result = doc.Editor.Text;
} else {
@@ -113,9 +119,11 @@ namespace MonoDevelop.Ide.FindInFiles
return result;
}
- Document SearchDocument ()
+ async Task<Document> SearchDocument ()
{
- return IdeApp.Workbench.Documents.FirstOrDefault(d => !string.IsNullOrEmpty (d.FileName) && Path.GetFullPath (d.FileName) == Path.GetFullPath (FileName));
+ Document result = null;
+ await Runtime.RunInMainThread (() => result = IdeApp.Workbench.Documents.FirstOrDefault(d => !string.IsNullOrEmpty (d.FileName) && Path.GetFullPath (d.FileName) == Path.GetFullPath (FileName)));
+ return result;
}
Document document;
@@ -125,11 +133,11 @@ namespace MonoDevelop.Ide.FindInFiles
bool hadBom;
Encoding encoding;
- public void BeginReplace (string content)
+ public async void BeginReplace (string content)
{
somethingReplaced = false;
buffer = new StringBuilder (content);
- document = SearchDocument ();
+ document = await SearchDocument ();
if (document != null) {
Gtk.Application.Invoke (delegate {
undoGroup = document.Editor.OpenUndoGroup ();
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
index 8336c1a1b4..7446c0e012 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
@@ -166,7 +166,7 @@ namespace MonoDevelop.Ide.Gui.Components
}
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return widget;
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs
index 5933d9856c..1f267996a8 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs
@@ -123,17 +123,23 @@ namespace MonoDevelop.Ide.Gui.Components
[CommandHandler (EditCommands.Cut)]
void CutText ()
{
- if (Buffer.HasSelection) {
+ if (!Buffer.HasSelection)
+ return;
+ if (Editable) {
var clipboard = Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
Buffer.CutClipboard (clipboard, false);
+ } else {
+ CopyText ();
}
}
[CommandHandler (EditCommands.Paste)]
void PasteText ()
{
- var clipboard = Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
- Buffer.PasteClipboard (clipboard);
+ if (Editable) {
+ var clipboard = Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
+ Buffer.PasteClipboard (clipboard);
+ }
}
static readonly Regex lineRegex = new Regex ("\\b.*\\s(?<file>(\\w:)?[/\\\\].*):(\\w+\\s)?(?<line>\\d+)\\.?\\s*$", RegexOptions.Compiled);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
index 84125c5e78..62fc2913f1 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/MultiConfigItemOptionsPanel.cs
@@ -32,6 +32,8 @@ using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Projects;
+using MonoDevelop.Components.AutoTest;
+using System.ComponentModel;
namespace MonoDevelop.Ide.Gui.Dialogs
{
@@ -100,17 +102,20 @@ namespace MonoDevelop.Ide.Gui.Dialogs
Control IOptionsPanel.CreatePanelWidget ()
{
Gtk.VBox cbox = new Gtk.VBox (false, 6);
- Gtk.HBox combosBox = new Gtk.HBox (false, 6);
+ Gtk.HBox combosBox = new Gtk.HBox (false, 6) { Name = "panelWidgetCombosBox" };
cbox.PackStart (combosBox, false, false, 0);
combosBox.PackStart (new Gtk.Label (GettextCatalog.GetString ("Configuration:")), false, false, 0);
configListStore = new Gtk.ListStore (typeof(string), typeof(string));
- configCombo = new Gtk.ComboBox (configListStore);
+ configCombo = new Gtk.ComboBox (configListStore) { Name = "panelWidgetConfigurationCombo" };
+ SemanticModelAttribute modelAttr = new SemanticModelAttribute ("configListStore__DisplayName", "configListStore__ConfigName");
+ TypeDescriptor.AddAttributes (configListStore, modelAttr);
var cell = new Gtk.CellRendererText ();
configCombo.PackStart (cell, true);
configCombo.AddAttribute (cell, "text", 0);
combosBox.PackStart (configCombo, false, false, 0);
combosBox.PackStart (new Gtk.Label (GettextCatalog.GetString ("Platform:")), false, false, 0);
platformCombo = Gtk.ComboBox.NewText ();
+ platformCombo.Name = "panelWidgetPlatformCombo";
combosBox.PackStart (platformCombo, false, false, 0);
cbox.PackStart (new Gtk.HSeparator (), false, false, 0);
cbox.ShowAll ();
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/BaseViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/BaseViewContent.cs
index 893bf654f2..a879a3d30c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/BaseViewContent.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/BaseViewContent.cs
@@ -33,7 +33,6 @@ using MonoDevelop.Components;
using MonoDevelop.Core;
using System.Collections.Immutable;
using MonoDevelop.Projects;
-using MonoDevelop.Components;
namespace MonoDevelop.Ide.Gui
{
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
index c8d5a72005..d60d1b1516 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
@@ -370,6 +370,10 @@ namespace MonoDevelop.Ide.Gui
// Or at least one that updates "soon".
TypeSystemService.TrackFileChanges = false;
try {
+ // Freeze the file change events. There can be several such events, and sending them all together
+ // is more efficient
+ FileService.FreezeEvents ();
+
if (Window.ViewContent.IsViewOnly || !Window.ViewContent.IsDirty)
return;
@@ -396,13 +400,17 @@ namespace MonoDevelop.Ide.Gui
// save backup first
if (IdeApp.Preferences.CreateFileBackupCopies) {
await Window.ViewContent.Save (fileName + "~");
- FileService.NotifyFileChanged (fileName);
+ FileService.NotifyFileChanged (fileName + "~");
}
await Window.ViewContent.Save (fileName);
+ FileService.NotifyFileChanged (fileName);
OnSaved(EventArgs.Empty);
}
}
} finally {
+ // Send all file change notifications
+ FileService.ThawEvents ();
+
// Set the file time of the current document after the file time of the written file, to prevent double file updates.
// Note that the parsed document may be overwritten by a background thread to a more recent one.
var doc = parsedDocument;
@@ -732,7 +740,7 @@ namespace MonoDevelop.Ide.Gui
{
try {
await EnsureAnalysisDocumentIsOpen ();
- string currentParseFile = FileName;
+ string currentParseFile = GetCurrentParseFileName();
var editor = Editor;
if (editor == null || string.IsNullOrEmpty (currentParseFile))
return null;
@@ -866,7 +874,7 @@ namespace MonoDevelop.Ide.Gui
internal void StartReparseThread ()
{
- string currentParseFile = adhocProject != null ? adHocFile : FileName;
+ string currentParseFile = GetCurrentParseFileName ();
if (string.IsNullOrEmpty (currentParseFile))
return;
CancelParseTimeout ();
@@ -878,6 +886,12 @@ namespace MonoDevelop.Ide.Gui
});
}
+ string GetCurrentParseFileName ()
+ {
+ string result = adhocProject != null ? adHocFile : Editor.FileName;
+ return result ?? FileName;
+ }
+
async void StartReparseThreadDelayed (FilePath currentParseFile)
{
var editor = Editor;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DocumentToolbar.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DocumentToolbar.cs
index 3734516f80..ca4a8d9350 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DocumentToolbar.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DocumentToolbar.cs
@@ -206,7 +206,7 @@ namespace MonoDevelop.Ide.Gui
Image.Show ();
}
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return button;
}
@@ -219,6 +219,30 @@ namespace MonoDevelop.Ide.Gui
button.Clicked -= value;
}
}
+
+ public class DocumentToolButtonImage : Control
+ {
+ ImageView image;
+ internal DocumentToolButtonImage (ImageView image)
+ {
+ this.image = image;
+ }
+
+ protected override object CreateNativeWidget<T> ()
+ {
+ return image;
+ }
+
+ public static implicit operator Gtk.Widget (DocumentToolButtonImage d)
+ {
+ return d.GetNativeWidget<Gtk.Widget> ();
+ }
+
+ public static implicit operator DocumentToolButtonImage (ImageView d)
+ {
+ return new DocumentToolButtonImage (d);
+ }
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SyncContext.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SyncContext.cs
index a7a0ec0838..8db95e7b96 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SyncContext.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SyncContext.cs
@@ -41,11 +41,6 @@ namespace MonoDevelop.Ide.Gui
[ThreadStatic]
static SyncContext context;
- static Hashtable delegateFactories = new Hashtable ();
- static ModuleBuilder module;
- static AssemblyBuilder asmBuilder;
- static int typeCounter;
-
public static void SetContext (SyncContext ctx)
{
context = ctx;
@@ -66,4 +61,6 @@ namespace MonoDevelop.Ide.Gui
cb.BeginInvoke (ob, null, null);
}
}
+
+ public delegate void StatefulMessageHandler (object state);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
index 6f9a322262..97d389b364 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
@@ -54,6 +54,7 @@ using System.Text;
using MonoDevelop.Ide.Editor;
using MonoDevelop.Components;
using System.Threading.Tasks;
+using System.Collections.Immutable;
namespace MonoDevelop.Ide.Gui
{
@@ -63,7 +64,7 @@ namespace MonoDevelop.Ide.Gui
public sealed class Workbench
{
readonly ProgressMonitorManager monitors = new ProgressMonitorManager ();
- readonly List<Document> documents = new List<Document> ();
+ ImmutableList<Document> documents = ImmutableList<Document>.Empty;
DefaultWorkbench workbench;
PadCollection pads;
@@ -144,8 +145,8 @@ namespace MonoDevelop.Ide.Gui
return workbench.Close();
}
- public ReadOnlyCollection<Document> Documents {
- get { return documents.AsReadOnly (); }
+ public ImmutableList<Document> Documents {
+ get { return documents; }
}
public Document ActiveDocument {
@@ -775,7 +776,7 @@ namespace MonoDevelop.Ide.Gui
doc = new Document (window);
window.Closing += OnWindowClosing;
window.Closed += OnWindowClosed;
- documents.Add (doc);
+ documents = documents.Add (doc);
doc.OnDocumentAttached ();
OnDocumentOpened (new DocumentEventArgs (doc));
@@ -832,7 +833,7 @@ namespace MonoDevelop.Ide.Gui
var doc = FindDocument (window);
window.Closing -= OnWindowClosing;
window.Closed -= OnWindowClosed;
- documents.Remove (doc);
+ documents = documents.Remove (doc);
OnDocumentClosed (doc);
doc.DisposeDocument ();
}
@@ -1161,8 +1162,7 @@ namespace MonoDevelop.Ide.Gui
workbench.InternalViewContentCollection.Insert (newPlacement, content);
Document doc = documents [oldPlacement];
- documents.RemoveAt (oldPlacement);
- documents.Insert (newPlacement, doc);
+ documents = documents.RemoveAt (oldPlacement).Insert (newPlacement, doc);
}
internal void LockActiveWindowChangeEvent ()
@@ -1189,6 +1189,8 @@ namespace MonoDevelop.Ide.Gui
ThreadPool.QueueUserWorkItem (delegate {
// t = DateTime.Now;
lock (fileStatusLock) {
+ if (fileStatus == null)
+ return;
foreach (FilePath file in files) {
try {
DateTime ft = File.GetLastWriteTimeUtc (file);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs
index 375c376abc..a87031db12 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs
@@ -198,6 +198,11 @@ namespace MonoDevelop.Ide.Projects
this.project = configureProject;
assemblies.Clear ();
+ if (configureProject == null) {
+ Reset ();
+ return;
+ }
+
nugetDir = configureProject.ParentSolution.ItemDirectory.Combine ("packages");
foreach (var asm in selectDialog.GetRecentFileReferences (project.ParentSolution.FileName)) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/FinalProjectConfigurationPage.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/FinalProjectConfigurationPage.cs
index a535151d68..456006faa0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/FinalProjectConfigurationPage.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/FinalProjectConfigurationPage.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using MonoDevelop.Core.StringParsing;
using MonoDevelop.Ide.Templates;
using ProjectCreateParameters = MonoDevelop.Projects.ProjectCreateParameters;
using SolutionFolder = MonoDevelop.Projects.SolutionFolder;
@@ -228,7 +229,7 @@ namespace MonoDevelop.Ide.Projects
public void UpdateFromParameters ()
{
ProjectName = Parameters ["ProjectName"];
- projectNameIsReadOnly = Parameters.GetBoolean ("IsProjectNameReadOnly", false);
+ projectNameIsReadOnly = Parameters.GetBoolValue ("IsProjectNameReadOnly", false);
}
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/PackageReferencePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/PackageReferencePanel.cs
index 96f89f4735..2ddb9df4e9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/PackageReferencePanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/PackageReferencePanel.cs
@@ -112,8 +112,14 @@ namespace MonoDevelop.Ide.Projects
{
selection.Clear ();
configureProject = netProject;
- SetTargetFramework (netProject.AssemblyContext, netProject.TargetFramework);
- Reset ();
+ if (netProject != null) {
+ SetTargetFramework (netProject.AssemblyContext, netProject.TargetFramework);
+ Reset ();
+ } else {
+ targetContext = null;
+ targetVersion = null;
+ store.Clear ();
+ }
}
public void SetFilter (string filter)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectReferencePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectReferencePanel.cs
index 69de5b937b..e1dc9b1fef 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectReferencePanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectReferencePanel.cs
@@ -106,8 +106,11 @@ namespace MonoDevelop.Ide.Projects {
selection.Clear ();
store.Clear ();
this.configureProject = configureProject;
- PopulateListView ();
- Show ();
+
+ if (configureProject != null) {
+ PopulateListView ();
+ Show ();
+ }
}
public void SetFilter (string filter)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/SelectReferenceDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/SelectReferenceDialog.cs
index ac91295d78..f297eeec48 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/SelectReferenceDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/SelectReferenceDialog.cs
@@ -96,9 +96,12 @@ namespace MonoDevelop.Ide.Projects
this.configureProject = configureProject;
foreach (var p in panels)
p.SetProject (configureProject);
-
+
((ListStore) ReferencesTreeView.Model).Clear ();
+ if (configureProject == null)
+ return;
+
foreach (ProjectReference refInfo in configureProject.References)
AppendReference (refInfo);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectCreateInformationExtensions.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectCreateInformationExtensions.cs
new file mode 100644
index 0000000000..df16a37a0d
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectCreateInformationExtensions.cs
@@ -0,0 +1,40 @@
+//
+// ProjectCreateInformationExtensions.cs
+//
+// Author:
+// Matt Ward <matt.ward@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using MonoDevelop.Projects;
+
+namespace MonoDevelop.Ide.Templates
+{
+ static class ProjectCreateInformationExtensions
+ {
+ public static bool ShouldCreate (this ProjectCreateInformation projectCreateInformation, string condition)
+ {
+ return TemplateConditionEvaluator.EvaluateCondition (projectCreateInformation.Parameters, condition);
+ }
+ }
+}
+
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
index dfb83e7deb..fe5c2d792e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
@@ -312,7 +312,7 @@ namespace MonoDevelop.Ide.Templates
{
if (await IdeApp.Workspace.OpenWorkspaceItem (createdSolutionName)) {
foreach (string action in actions)
- IdeApp.Workbench.OpenDocument (Path.Combine (createdProjectInformation.ProjectBasePath, action), project:null);
+ await IdeApp.Workbench.OpenDocument (Path.Combine (createdProjectInformation.ProjectBasePath, action), project:null);
return true;
}
return false;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateConditionEvaluator.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateConditionEvaluator.cs
index 220cfd6e98..2d0b8642b7 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateConditionEvaluator.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateConditionEvaluator.cs
@@ -34,7 +34,6 @@ namespace MonoDevelop.Ide.Templates
{
public static bool EvaluateCondition (IStringTagModel model, string condition)
{
- // This logic is duplicated in the ProjectCreateInformation.ShouldCreate method.
if (string.IsNullOrWhiteSpace (condition))
return true;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopSourceTextContainer.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopSourceTextContainer.cs
index 2814a22de7..0c282f163c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopSourceTextContainer.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopSourceTextContainer.cs
@@ -41,7 +41,7 @@ namespace MonoDevelop.Ide.TypeSystem
{
readonly ITextDocument document;
bool isDisposed;
- MonoDevelopSourceText currentText;
+ SourceText currentText;
public DocumentId Id {
get;
@@ -57,7 +57,6 @@ namespace MonoDevelop.Ide.TypeSystem
{
this.document = document;
this.document.TextChanging += HandleTextReplacing;
- this.document.TextChanged += Document_TextChanged;
}
void HandleTextReplacing (object sender, Core.Text.TextChangeEventArgs e)
@@ -66,22 +65,17 @@ namespace MonoDevelop.Ide.TypeSystem
if (handler != null) {
var oldText = CurrentText;
var newText = oldText.Replace (e.Offset, e.RemovalLength, e.InsertedText.Text);
+ currentText = newText;
handler (this, new Microsoft.CodeAnalysis.Text.TextChangeEventArgs (oldText, newText, new TextChangeRange(TextSpan.FromBounds (e.Offset, e.Offset + e.RemovalLength), e.InsertionLength)));
}
}
- void Document_TextChanged (object sender, Core.Text.TextChangeEventArgs e)
- {
- currentText = null;
- }
-
public void Dispose ()
{
if (isDisposed)
return;
currentText = null;
document.TextChanging -= HandleTextReplacing;
- document.TextChanged -= Document_TextChanged;;
isDisposed = true;
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopTextLoader.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopTextLoader.cs
index 4b95fb2c5b..3f766eb3c7 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopTextLoader.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopTextLoader.cs
@@ -44,7 +44,8 @@ namespace MonoDevelop.Ide.TypeSystem
}
#region implemented abstract members of TextLoader
- async Task<TextAndVersion> GetTextAndVersion (Workspace workspace, DocumentId documentId, CancellationToken cancellationToken)
+
+ public override async Task<TextAndVersion> LoadTextAndVersionAsync (Workspace workspace, DocumentId documentId, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested ();
SourceText text;
@@ -52,16 +53,12 @@ namespace MonoDevelop.Ide.TypeSystem
text = new MonoDevelopSourceText (TextFileProvider.Instance.GetTextEditorData (fileName).CreateDocumentSnapshot ());
} else {
if (!File.Exists (fileName))
- return TextAndVersion.Create (SourceText.From (""), VersionStamp.Create ()); ;
- text = SourceText.From (await TextFileUtility.GetTextAsync (fileName, cancellationToken));
+ return TextAndVersion.Create (SourceText.From (""), VersionStamp.Create ());
+ text = SourceText.From (await TextFileUtility.GetTextAsync (fileName, cancellationToken).ConfigureAwait(false));
}
return TextAndVersion.Create (text, VersionStamp.Create ());
}
- public override async Task<TextAndVersion> LoadTextAndVersionAsync (Workspace workspace, DocumentId documentId, CancellationToken cancellationToken)
- {
- return await GetTextAndVersion (workspace, documentId, cancellationToken);
- }
#endregion
public static TextLoader CreateFromText (string text)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
index 44abef3f28..07cc14a60f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
@@ -180,11 +180,6 @@ namespace MonoDevelop.Ide.TypeSystem
}
- static bool SupportsRoslyn (MonoDevelop.Projects.Project proj)
- {
- return string.Equals (proj.TypeGuid, "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", StringComparison.OrdinalIgnoreCase) || string.Equals (proj.TypeGuid, "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", StringComparison.OrdinalIgnoreCase);
- }
-
SolutionData solutionData;
async Task<SolutionInfo> CreateSolutionInfo (MonoDevelop.Projects.Solution solution, CancellationToken token)
{
@@ -197,7 +192,7 @@ namespace MonoDevelop.Ide.TypeSystem
foreach (var proj in mdProjects) {
if (token.IsCancellationRequested)
return null;
- if (!SupportsRoslyn (proj))
+ if (!proj.SupportsRoslyn)
continue;
var tp = LoadProject (proj, token).ContinueWith (t => {
if (!t.IsCanceled)
@@ -423,7 +418,7 @@ namespace MonoDevelop.Ide.TypeSystem
}, token);
}
- internal void UpdateProjectionEnntry (MonoDevelop.Projects.ProjectFile projectFile, IReadOnlyList<Projection> projections)
+ internal void UpdateProjectionEntry (MonoDevelop.Projects.ProjectFile projectFile, IReadOnlyList<Projection> projections)
{
foreach (var entry in projectionList) {
if (entry.File.FilePath == projectFile.FilePath) {
@@ -501,7 +496,7 @@ namespace MonoDevelop.Ide.TypeSystem
var options = new ParseOptions {
FileName = f.FilePath,
Project = p,
- Content = StringTextSource.ReadFrom (f.FilePath),
+ Content = TextFileProvider.Instance.GetReadOnlyTextEditorData (f.FilePath),
};
var projections = node.Parser.GenerateProjections (options);
var entry = new ProjectionEntry ();
@@ -695,6 +690,17 @@ namespace MonoDevelop.Ide.TypeSystem
return;
bool isOpen;
var filePath = document.FilePath;
+
+ Projection projection = null;
+ foreach (var entry in ProjectionList) {
+ var p = entry.Projections.FirstOrDefault (proj => FilePath.PathComparer.Equals (proj.Document.FileName, filePath));
+ if (p != null) {
+ filePath = entry.File.FilePath;
+ projection = p;
+ break;
+ }
+ }
+
var data = TextFileProvider.Instance.GetTextEditorData (filePath, out isOpen);
// Guard against already done changes in linked files.
@@ -708,19 +714,10 @@ namespace MonoDevelop.Ide.TypeSystem
return;
}
changedFiles [filePath] = text;
-
- Projection projection = null;
- foreach (var entry in ProjectionList) {
- var p = entry.Projections.FirstOrDefault (proj => FilePath.PathComparer.Equals (proj.Document.FileName, filePath));
- if (p != null) {
- filePath = entry.File.FilePath;
- projection = p;
- break;
- }
- }
+
SourceText oldFile;
if (!isOpen || !document.TryGetText (out oldFile)) {
- oldFile = new MonoDevelopSourceText (data);
+ oldFile = document.GetTextAsync ().Result;
}
var changes = text.GetTextChanges (oldFile).OrderByDescending (c => c.Span.Start).ToList ();
int delta = 0;
@@ -728,55 +725,67 @@ namespace MonoDevelop.Ide.TypeSystem
if (!isOpen) {
delta = ApplyChanges (projection, data, changes);
var formatter = CodeFormatterService.GetFormatter (data.MimeType);
- var mp = GetMonoProject (CurrentSolution.GetProject (id.ProjectId));
- string currentText = data.Text;
-
- foreach (var change in changes) {
- delta -= change.Span.Length - change.NewText.Length;
- var startOffset = change.Span.Start - delta;
-
- if (projection != null) {
- int originalOffset;
- if (projection.TryConvertFromProjectionToOriginal (startOffset, out originalOffset))
- startOffset = originalOffset;
- }
+ if (formatter.SupportsPartialDocumentFormatting) {
+ var mp = GetMonoProject (CurrentSolution.GetProject (id.ProjectId));
+ string currentText = data.Text;
+
+ foreach (var change in changes) {
+ delta -= change.Span.Length - change.NewText.Length;
+ var startOffset = change.Span.Start - delta;
+
+ if (projection != null) {
+ int originalOffset;
+ if (projection.TryConvertFromProjectionToOriginal (startOffset, out originalOffset))
+ startOffset = originalOffset;
+ }
- string str;
- if (change.NewText.Length == 0) {
- str = formatter.FormatText (mp.Policies, currentText, TextSegment.FromBounds (Math.Max (0, startOffset - 1), Math.Min (data.Length, startOffset + 1)));
- } else {
- str = formatter.FormatText (mp.Policies, currentText, new TextSegment (startOffset, change.NewText.Length));
+ string str;
+ if (change.NewText.Length == 0) {
+ str = formatter.FormatText (mp.Policies, currentText, TextSegment.FromBounds (Math.Max (0, startOffset - 1), Math.Min (data.Length, startOffset + 1)));
+ } else {
+ str = formatter.FormatText (mp.Policies, currentText, new TextSegment (startOffset, change.NewText.Length));
+ }
+ data.ReplaceText (startOffset, change.NewText.Length, str);
}
- data.ReplaceText (startOffset, change.NewText.Length, str);
}
data.Save ();
- OnDocumentTextChanged (id, new MonoDevelopSourceText (data), PreservationMode.PreserveValue);
+ if (projection != null) {
+ UpdateProjectionsDocuments (document, data);
+ } else {
+ OnDocumentTextChanged (id, new MonoDevelopSourceText (data), PreservationMode.PreserveValue);
+ }
FileService.NotifyFileChanged (filePath);
} else {
- var formatter = CodeFormatterService.GetFormatter (data.MimeType);
+ var formatter = CodeFormatterService.GetFormatter (data.MimeType);
var documentContext = IdeApp.Workbench.Documents.FirstOrDefault (d => FilePath.PathComparer.Compare (d.FileName, filePath) == 0);
if (documentContext != null) {
var editor = (TextEditor)data;
using (var undo = editor.OpenUndoGroup ()) {
delta = ApplyChanges (projection, data, changes);
- foreach (var change in changes) {
- delta -= change.Span.Length - change.NewText.Length;
- var startOffset = change.Span.Start - delta;
- if (projection != null) {
- int originalOffset;
- if (projection.TryConvertFromProjectionToOriginal (startOffset, out originalOffset))
- startOffset = originalOffset;
- }
- if (change.NewText.Length == 0) {
- formatter.OnTheFlyFormat (editor, documentContext, TextSegment.FromBounds (Math.Max (0, startOffset - 1), Math.Min (data.Length, startOffset + 1)));
- } else {
- formatter.OnTheFlyFormat (editor, documentContext, new TextSegment (startOffset, change.NewText.Length));
+ if (formatter.SupportsOnTheFlyFormatting) {
+ foreach (var change in changes) {
+ delta -= change.Span.Length - change.NewText.Length;
+ var startOffset = change.Span.Start - delta;
+ if (projection != null) {
+ int originalOffset;
+ if (projection.TryConvertFromProjectionToOriginal (startOffset, out originalOffset))
+ startOffset = originalOffset;
+ }
+ if (change.NewText.Length == 0) {
+ formatter.OnTheFlyFormat (editor, documentContext, TextSegment.FromBounds (Math.Max (0, startOffset - 1), Math.Min (data.Length, startOffset + 1)));
+ } else {
+ formatter.OnTheFlyFormat (editor, documentContext, new TextSegment (startOffset, change.NewText.Length));
+ }
}
}
}
}
- OnDocumentTextChanged (id, new MonoDevelopSourceText(data.CreateDocumentSnapshot ()), PreservationMode.PreserveValue);
+ if (projection != null) {
+ UpdateProjectionsDocuments (document, data);
+ } else {
+ OnDocumentTextChanged (id, new MonoDevelopSourceText (data.CreateDocumentSnapshot ()), PreservationMode.PreserveValue);
+ }
Runtime.RunInMainThread (() => {
if (IdeApp.Workbench != null)
foreach (var w in IdeApp.Workbench.Documents)
@@ -785,6 +794,27 @@ namespace MonoDevelop.Ide.TypeSystem
}
}
+ void UpdateProjectionsDocuments (Document document, ITextDocument data)
+ {
+ var project = TypeSystemService.GetMonoProject (document.Project);
+ var file = project.Files.GetFile (data.FileName);
+ var node = TypeSystemService.GetTypeSystemParserNode (data.MimeType, file.BuildAction);
+ if (node != null && node.Parser.CanGenerateProjection (data.MimeType, file.BuildAction, project.SupportedLanguages)) {
+ var options = new ParseOptions {
+ FileName = file.FilePath,
+ Project = project,
+ Content = TextFileProvider.Instance.GetReadOnlyTextEditorData (file.FilePath),
+ };
+ var projections = node.Parser.GenerateProjections (options).Result;
+ UpdateProjectionEntry (file, projections);
+ var projectId = GetProjectId (project);
+ var projectdata = GetProjectData (projectId);
+ foreach (var projected in projections) {
+ OnDocumentTextChanged (projectdata.GetDocumentId (projected.Document.FileName), new MonoDevelopSourceText (projected.Document), PreservationMode.PreserveValue);
+ }
+ }
+ }
+
static int ApplyChanges (Projection projection, ITextDocument data, List<TextChange> changes)
{
int delta = 0;
@@ -793,11 +823,16 @@ namespace MonoDevelop.Ide.TypeSystem
if (projection != null) {
int originalOffset;
- if (projection.TryConvertFromProjectionToOriginal (offset, out originalOffset))
+ //If change is outside projection segments don't apply it...
+ if (projection.TryConvertFromProjectionToOriginal (offset, out originalOffset)) {
offset = originalOffset;
+ data.ReplaceText (offset, change.Span.Length, change.NewText);
+ delta += change.Span.Length - change.NewText.Length;
+ }
+ } else {
+ data.ReplaceText (offset, change.Span.Length, change.NewText);
+ delta += change.Span.Length - change.NewText.Length;
}
- data.ReplaceText (offset, change.Span.Length, change.NewText);
- delta += change.Span.Length - change.NewText.Length;
}
return delta;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs
index 3ae504505a..94a21ec954 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService.cs
@@ -243,7 +243,7 @@ namespace MonoDevelop.Ide.TypeSystem
return ParseFile (project, data.FileName, data.MimeType, data, cancellationToken);
}
- internal static Task<ParsedDocumentProjection> ParseProjection (ParseOptions options, string mimeType, CancellationToken cancellationToken = default(CancellationToken))
+ internal static async Task<ParsedDocumentProjection> ParseProjection (ParseOptions options, string mimeType, CancellationToken cancellationToken = default(CancellationToken))
{
if (options == null)
throw new ArgumentNullException ("options");
@@ -252,18 +252,18 @@ namespace MonoDevelop.Ide.TypeSystem
var parser = GetParser (mimeType, options.BuildAction);
if (parser == null || !parser.CanGenerateProjection (mimeType, options.BuildAction, options.Project?.SupportedLanguages))
- return Task.FromResult ((ParsedDocumentProjection)null);
+ return null;
var t = Counters.ParserService.FileParsed.BeginTiming (options.FileName);
try {
- var result = parser.GenerateParsedDocumentProjection (options, cancellationToken);
+ var result = await parser.GenerateParsedDocumentProjection (options, cancellationToken);
if (options.Project != null) {
var ws = workspaces.First () ;
var projectId = ws.GetProjectId (options.Project);
if (projectId != null) {
- ws.UpdateProjectionEnntry (options.Project.GetProjectFile (options.FileName), result.Result.Projections);
- foreach (var projection in result.Result.Projections) {
+ ws.UpdateProjectionEntry (options.Project.GetProjectFile (options.FileName), result.Projections);
+ foreach (var projection in result.Projections) {
var docId = ws.GetDocumentId (projectId, projection.Document.FileName);
if (docId != null) {
ws.InformDocumentTextChange (docId, new MonoDevelopSourceText (projection.Document));
@@ -274,12 +274,12 @@ namespace MonoDevelop.Ide.TypeSystem
return result;
} catch (AggregateException ae) {
ae.Flatten ().Handle (x => x is OperationCanceledException);
- return Task.FromResult ((ParsedDocumentProjection)null);
+ return null;
} catch (OperationCanceledException) {
- return Task.FromResult ((ParsedDocumentProjection)null);
+ return null;
} catch (Exception e) {
LoggingService.LogError ("Exception while parsing: " + e);
- return Task.FromResult ((ParsedDocumentProjection)null);
+ return null;
} finally {
t.Dispose ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService_WorkspaceHandling.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService_WorkspaceHandling.cs
index 175cc3f7ee..81c4aef5bc 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService_WorkspaceHandling.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/TypeSystemService_WorkspaceHandling.cs
@@ -258,7 +258,7 @@ namespace MonoDevelop.Ide.TypeSystem
return null;
}
- public static async Task<Compilation> GetCompilationAsync (MonoDevelop.Projects.Project project, CancellationToken cancellationToken = default(CancellationToken))
+ public static Task<Compilation> GetCompilationAsync (MonoDevelop.Projects.Project project, CancellationToken cancellationToken = default(CancellationToken))
{
if (project == null)
throw new ArgumentNullException ("project");
@@ -269,9 +269,9 @@ namespace MonoDevelop.Ide.TypeSystem
var roslynProject = w.CurrentSolution.GetProject (projectId);
if (roslynProject == null)
continue;
- return await roslynProject.GetCompilationAsync (cancellationToken).ConfigureAwait (false);
+ return roslynProject.GetCompilationAsync (cancellationToken);
}
- return null;
+ return Task.FromResult<Compilation> (null);
}
static void OnWorkspaceItemAdded (object s, MonoDevelop.Projects.WorkspaceItemEventArgs args)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
index f946430b72..f96246e650 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
@@ -7740,6 +7740,10 @@
<Compile Include="MonoDevelop.Components\Dialog.cs" />
<Compile Include="MonoDevelop.Ide.TypeSystem\MonoDevelopSourceText.cs" />
<Compile Include="MonoDevelop.Components.AutoTest\DataTransferObjects.cs" />
+ <Compile Include="MonoDevelop.Ide.Templates\ProjectCreateInformationExtensions.cs" />
+ <Compile Include="MonoDevelop.Ide.Editor.Extension\FoldingTextEditorExtension.cs" />
+ <Compile Include="MonoDevelop.Ide.Editor.Extension\ErrorHandlerTextEditorExtension.cs" />
+ <Compile Include="MonoDevelop.Ide.Editor.Extension\DefaultCommandTextEditorExtension.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
index af9015da0e..648eb17bb8 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
@@ -42,31 +42,34 @@ namespace MonoDevelop.Ide
{
public static class DispatchService
{
- static Queue<GenericMessageContainer> backgroundQueue = new Queue<GenericMessageContainer> ();
- static ManualResetEvent backgroundThreadWait = new ManualResetEvent (false);
- static Queue<GenericMessageContainer> guiQueue = new Queue<GenericMessageContainer> ();
- static Thread thrBackground;
- static uint iIdle = 0;
- static GLib.TimeoutHandler handler;
- static Thread guiThread;
static GuiSyncContext guiContext;
- static internal bool DispatchDebug;
- const string errormsg = "An exception was thrown while dispatching a method call in the UI thread.";
class GtkSynchronizationContext: SynchronizationContext
{
public override void Post (SendOrPostCallback d, object state)
{
- GuiDispatch (delegate {
+ Gtk.Application.Invoke (delegate {
d (state);
});
}
public override void Send (SendOrPostCallback d, object state)
{
- GuiSyncDispatch (delegate {
+ if (Runtime.IsMainThread) {
d (state);
- });
+ return;
+ }
+ var ob = new object ();
+ lock (ob) {
+ Gtk.Application.Invoke (delegate {
+ try {
+ d (state);
+ } finally {
+ Monitor.Pulse (ob);
+ }
+ });
+ Monitor.Wait (ob);
+ }
}
public override SynchronizationContext CreateCopy ()
@@ -81,64 +84,12 @@ namespace MonoDevelop.Ide
return;
guiContext = new GuiSyncContext ();
- guiThread = Thread.CurrentThread;
-
- handler = new GLib.TimeoutHandler (guiDispatcher);
-
- thrBackground = new Thread (new ThreadStart (backgroundDispatcher)) {
- Name = "Background dispatcher",
- IsBackground = true,
- Priority = ThreadPriority.Lowest,
- };
- thrBackground.Start ();
-
- DispatchDebug = Environment.GetEnvironmentVariable ("MONODEVELOP_DISPATCH_DEBUG") != null;
SynchronizationContext = new GtkSynchronizationContext ();
}
public static SynchronizationContext SynchronizationContext { get; private set; }
- static Task GuiDispatch (Action cb)
- {
- TaskCompletionSource<bool> ts = new TaskCompletionSource<bool> ();
- if (IsGuiThread) {
- try {
- cb ();
- ts.SetResult (true);
- } catch (Exception ex) {
- ts.SetException (ex);
- }
- return ts.Task;
- }
-
- QueueMessage (new GenericMessageContainer (() => {
- try {
- cb ();
- } finally {
- ts.SetResult (true);
- }
- }, false));
-
- return ts.Task;
- }
-
- static void GuiSyncDispatch (MessageHandler cb)
- {
- if (IsGuiThread) {
- cb ();
- return;
- }
-
- GenericMessageContainer mc = new GenericMessageContainer (cb, true);
- lock (mc) {
- QueueMessage (mc);
- Monitor.Wait (mc);
- }
- if (mc.Exception != null)
- throw new Exception (errormsg, mc.Exception);
- }
-
static DateTime lastPendingEvents;
internal static void RunPendingEvents ()
{
@@ -168,152 +119,8 @@ namespace MonoDevelop.Ide
sw.Stop ();
Gdk.Threads.Leave();
- guiDispatcher ();
- }
-
- static void QueueMessage (GenericMessageContainer msg)
- {
- lock (guiQueue) {
- guiQueue.Enqueue (msg);
- if (iIdle == 0)
- iIdle = GLib.Timeout.Add (0, handler);
- }
- }
-
- static bool IsGuiThread
- {
- get { return guiThread == Thread.CurrentThread; }
- }
-
- static void AssertGuiThread ()
- {
- if (guiThread != Thread.CurrentThread)
- throw new InvalidOperationException ("This method can only be called in the GUI thread");
- }
-
- /// <summary>
- /// Runs the provided delegate in the background, but waits until finished, pumping the
- /// message queue if necessary.
- /// </summary>
- public static void BackgroundDispatchAndWait (MessageHandler cb)
- {
- object eventObject = new object ();
- lock (eventObject) {
- BackgroundDispatch (delegate {
- try {
- cb ();
- } finally {
- lock (eventObject) {
- Monitor.Pulse (eventObject);
- }
- }
- });
- if (IsGuiThread) {
- while (true) {
- if (Monitor.Wait (eventObject, 50))
- return;
- RunPendingEvents ();
- }
- }
- else {
- Monitor.Wait (eventObject);
- }
- }
- }
-
- public static void BackgroundDispatch (MessageHandler cb)
- {
- QueueBackground (new GenericMessageContainer (cb, false));
- }
-
- static void BackgroundDispatch (StatefulMessageHandler cb, object state)
- {
- QueueBackground (new StatefulMessageContainer (cb, state, false));
- }
-
- static void QueueBackground (GenericMessageContainer c)
- {
- lock (backgroundQueue) {
- backgroundQueue.Enqueue (c);
- if (backgroundQueue.Count == 1)
- backgroundThreadWait.Set ();
- }
}
- static bool guiDispatcher ()
- {
- GenericMessageContainer msg;
- int iterCount;
-
- lock (guiQueue) {
- iterCount = guiQueue.Count;
- if (iterCount == 0) {
- iIdle = 0;
- return false;
- }
- }
-
- for (int n=0; n<iterCount; n++) {
- lock (guiQueue) {
- if (guiQueue.Count == 0) {
- iIdle = 0;
- return false;
- }
- msg = guiQueue.Dequeue ();
- }
-
- msg.Run ();
-
- if (msg.IsSynchronous)
- lock (msg) Monitor.PulseAll (msg);
- else if (msg.Exception != null)
- HandlerError (msg);
- }
-
- lock (guiQueue) {
- if (guiQueue.Count == 0) {
- iIdle = 0;
- return false;
- } else
- return true;
- }
- }
-
- static void backgroundDispatcher ()
- {
- while (true) {
- GenericMessageContainer msg = null;
- bool wait = false;
- lock (backgroundQueue) {
- if (backgroundQueue.Count == 0) {
- backgroundThreadWait.Reset ();
- wait = true;
- } else
- msg = backgroundQueue.Dequeue ();
- }
-
- if (wait) {
- backgroundThreadWait.WaitOne ();
- continue;
- }
-
- if (msg != null) {
- msg.Run ();
- if (msg.Exception != null)
- HandlerError (msg);
- }
- }
- }
-
- static void HandlerError (GenericMessageContainer msg)
- {
- if (msg.CallerStack != null) {
- LoggingService.LogError ("{0} {1}\nCaller stack:{2}", errormsg, msg.Exception.ToString (), msg.CallerStack);
- }
- else
- LoggingService.LogError ("{0} {1}\nCaller stack not available. Define the environment variable MONODEVELOP_DISPATCH_DEBUG to enable caller stack capture.", errormsg, msg.Exception.ToString ());
- }
-
#region Animations
/// <summary>
@@ -399,76 +206,4 @@ namespace MonoDevelop.Ide
#endregion
}
-
- public delegate void MessageHandler ();
- public delegate void StatefulMessageHandler (object state);
-
- class GenericMessageContainer
- {
- MessageHandler callback;
- protected Exception ex;
- protected bool isSynchronous;
- protected string callerStack;
-
- protected GenericMessageContainer () { }
-
- public GenericMessageContainer (MessageHandler cb, bool isSynchronous)
- {
- callback = cb;
- this.isSynchronous = isSynchronous;
- if (DispatchService.DispatchDebug) callerStack = Environment.StackTrace;
- }
-
- public virtual void Run ( )
- {
- try {
- callback ();
- callback = null;
- }
- catch (Exception e) {
- ex = e;
- callback = null;
- }
- }
-
- public Exception Exception
- {
- get { return ex; }
- }
-
- public bool IsSynchronous
- {
- get { return isSynchronous; }
- }
-
- public string CallerStack
- {
- get { return callerStack; }
- }
- }
-
- class StatefulMessageContainer : GenericMessageContainer
- {
- object data;
- StatefulMessageHandler callback;
-
- public StatefulMessageContainer (StatefulMessageHandler cb, object state, bool isSynchronous)
- {
- data = state;
- callback = cb;
- this.isSynchronous = isSynchronous;
- if (DispatchService.DispatchDebug) callerStack = Environment.StackTrace;
- }
-
- public override void Run ( )
- {
- try {
- callback (data);
- }
- catch (Exception e) {
- ex = e;
- }
- }
- }
-
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdePreferences.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdePreferences.cs
index 27ceb639c4..ffff05ccad 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdePreferences.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdePreferences.cs
@@ -149,7 +149,7 @@ namespace MonoDevelop.Ide
internal static readonly string DefaultLightColorScheme = "Default";
internal static readonly string DefaultDarkColorScheme = "Oblivion";
- public readonly ConfigurationProperty<bool> EnableSourceAnalysis = ConfigurationProperty.Create ("MonoDevelop.AnalysisCore.AnalysisEnabled", true);
+ public readonly ConfigurationProperty<bool> EnableSourceAnalysis = ConfigurationProperty.Create ("MonoDevelop.AnalysisCore.AnalysisEnabled_V2", true);
public readonly ConfigurationProperty<bool> EnableUnitTestEditorIntegration = ConfigurationProperty.Create ("Testing.EnableUnitTestEditorIntegration", false);
public readonly SkinConfigurationProperty<string> ColorScheme = new SkinConfigurationProperty<string> ("ColorScheme", DefaultLightColorScheme, DefaultDarkColorScheme);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
index ddf89a3108..d83390e93f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
@@ -880,10 +880,14 @@ namespace MonoDevelop.Ide
foreach (var reference in editEventArgs.ReferencesToAdd)
project.References.Add (reference);
+ selDialog.SetProject (null);
+
return editEventArgs.ReferencesToAdd.Count > 0 || editEventArgs.ReferencesToRemove.Count > 0;
}
- else
+ else {
+ selDialog.SetProject (null);
return false;
+ }
} finally {
selDialog.Hide ();
}
diff --git a/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj b/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
index f518cef7a8..b744117f27 100644
--- a/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
+++ b/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
@@ -22,7 +22,6 @@
<EnvironmentVariables>
<EnvironmentVariables>
<Variable name="MONODEVELOP_LOCALE_PATH" value="../locale" />
- <Variable name="MONODEVELOP_PROFILE" value="./test-profile" />
</EnvironmentVariables>
</EnvironmentVariables>
<PlatformTarget>x86</PlatformTarget>
@@ -50,7 +49,6 @@
<EnvironmentVariables>
<EnvironmentVariables>
<Variable name="MONODEVELOP_LOCALE_PATH" value="../locale" />
- <Variable name="MONODEVELOP_PROFILE" value="./test-profile" />
</EnvironmentVariables>
</EnvironmentVariables>
<Execution>
diff --git a/main/tests/UnitTests/MonoDevelop.Ide.Editor/Commands/CodeCommentTests.cs b/main/tests/UnitTests/MonoDevelop.Ide.Editor/Commands/CodeCommentTests.cs
index 8678559f78..55a4c5235d 100644
--- a/main/tests/UnitTests/MonoDevelop.Ide.Editor/Commands/CodeCommentTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Ide.Editor/Commands/CodeCommentTests.cs
@@ -27,6 +27,9 @@ using System;
using System.Text;
using NUnit.Framework;
using UnitTests;
+using MonoDevelop.Ide.Editor.Extension;
+using MonoDevelop.CSharpBinding;
+using MonoDevelop.CSharpBinding.Tests;
namespace MonoDevelop.Ide.Editor
{
@@ -132,7 +135,7 @@ namespace MonoDevelop.Ide.Editor
}->
}");
- ((TextEditorViewContent)editor.GetViewContent ()).AddCodeComment ();
+ GetExtension (editor).AddCodeComment ();
AssertEditorState (editor, @"class Foo
{
//<-void Bar ()
@@ -142,6 +145,14 @@ namespace MonoDevelop.Ide.Editor
}");
}
+ static DefaultCommandTextEditorExtension GetExtension (TextEditor editor)
+ {
+ var ext = new DefaultCommandTextEditorExtension ();
+ var tww = new TestWorkbenchWindow { ViewContent = new TestViewContent () };
+ ext.Initialize (editor, new TestDocument (tww));
+ return ext;
+ }
+
[Test]
public void TestRemoveComment()
{
@@ -152,7 +163,7 @@ namespace MonoDevelop.Ide.Editor
//}->
}");
- ((TextEditorViewContent)editor.GetViewContent ()).RemoveCodeComment ();
+ GetExtension (editor).RemoveCodeComment ();
AssertEditorState (editor,@"class Foo
{
<-void Bar ()
@@ -172,7 +183,7 @@ namespace MonoDevelop.Ide.Editor
}->
}");
- ((TextEditorViewContent)editor.GetViewContent ()).ToggleCodeComment ();
+ GetExtension (editor).ToggleCodeComment ();
AssertEditorState (editor, @"class Foo
{
//<-void Bar ()
@@ -192,7 +203,7 @@ namespace MonoDevelop.Ide.Editor
//}->
}");
- ((TextEditorViewContent)editor.GetViewContent ()).ToggleCodeComment ();
+ GetExtension (editor).ToggleCodeComment ();
AssertEditorState (editor,@"class Foo
{
<-void Bar ()
@@ -214,7 +225,7 @@ namespace MonoDevelop.Ide.Editor
}
}
->");
- ((TextEditorViewContent)editor.GetViewContent ()).ToggleCodeComment ();
+ GetExtension (editor).ToggleCodeComment ();
AssertEditorState (editor, @"//class Foo
//{
// void Bar ()
@@ -234,7 +245,7 @@ namespace MonoDevelop.Ide.Editor
{
}
}");
- ((TextEditorViewContent)editor.GetViewContent ()).ToggleCodeComment ();
+ GetExtension (editor).ToggleCodeComment ();
AssertEditorState (editor,@"class Foo
{
//void Bar ()
@@ -243,6 +254,30 @@ namespace MonoDevelop.Ide.Editor
}");
}
+
+ /// <summary>
+ /// Bug 38355 - comment selected lines puts a comment on too many lines!
+ /// </summary>
+ [Test]
+ public void TestBug38355()
+ {
+ var editor = CreateTextEditor (@"class Foo
+{
+<- void Bar ()
+ {
+-> Bar();
+ }
+}");
+ GetExtension (editor).ToggleCodeComment ();
+ AssertEditorState (editor, @"class Foo
+{
+ //void Bar ()
+ //{
+ Bar();
+ }
+}");
+ }
+
}
}
diff --git a/main/tests/UnitTests/MonoDevelop.Ide.Gui/SearchPopupWindowTests.cs b/main/tests/UnitTests/MonoDevelop.Ide.Gui/SearchPopupWindowTests.cs
index 78a2b205a7..8f4b7bb720 100644
--- a/main/tests/UnitTests/MonoDevelop.Ide.Gui/SearchPopupWindowTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Ide.Gui/SearchPopupWindowTests.cs
@@ -138,6 +138,20 @@ namespace MonoDevelop.Ide.Gui
}
[Test]
+ public void TestLineStyle ()
+ {
+ var pattern = SearchPopupSearchPattern.ParsePattern ("cat:foo:line 1337");
+ Assert.AreEqual (new SearchPopupSearchPattern ("cat", "foo", 1337, -1), pattern);
+ }
+
+ [Test]
+ public void TestGithub ()
+ {
+ var pattern = SearchPopupSearchPattern.ParsePattern ("ExceptionCaughtDialog.cs#L510");
+ Assert.AreEqual (new SearchPopupSearchPattern (null, "ExceptionCaughtDialog.cs", 510, -1), pattern);
+ }
+
+ [Test]
public void TestOriginalSearchPatternStored ()
{
var pattern = SearchPopupSearchPattern.ParsePattern ("id:json");
diff --git a/main/tests/UnitTests/MonoDevelop.Ide.Templates/TestableWizardPage.cs b/main/tests/UnitTests/MonoDevelop.Ide.Templates/TestableWizardPage.cs
index 76ed0b3155..5a0654c736 100644
--- a/main/tests/UnitTests/MonoDevelop.Ide.Templates/TestableWizardPage.cs
+++ b/main/tests/UnitTests/MonoDevelop.Ide.Templates/TestableWizardPage.cs
@@ -30,7 +30,7 @@ namespace MonoDevelop.Ide.Templates
{
public class TestableWizardPage : WizardPage
{
- protected override object CreateNativeWidget ()
+ protected override object CreateNativeWidget<T> ()
{
return new Gtk.EventBox ();
}
diff --git a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
index a328581806..166e10d991 100644
--- a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
@@ -167,6 +167,22 @@ namespace MonoDevelop.Projects
Assert.IsTrue (tn.Contains ("Clean"));
Assert.IsTrue (tn.Contains ("ResolveReferences"));
Assert.IsTrue (tn.Contains ("GetReferenceAssemblyPaths"));
+ Assert.IsFalse (tn.Contains ("Conditioned"));
+ }
+
+ [Test]
+ public void TargetsIgnoringCondition ()
+ {
+ var p = LoadProject ();
+ p.Evaluate ();
+ var tn = p.EvaluatedTargetsIgnoringCondition.Select (t => t.Name).ToArray ();
+
+ // Verify that some of the imported targets are returned
+ Assert.IsTrue (tn.Contains ("Build"));
+ Assert.IsTrue (tn.Contains ("Clean"));
+ Assert.IsTrue (tn.Contains ("ResolveReferences"));
+ Assert.IsTrue (tn.Contains ("GetReferenceAssemblyPaths"));
+ Assert.IsTrue (tn.Contains ("Conditioned"));
}
[Test]
diff --git a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs
index 44dd2ff514..4a9008948c 100644
--- a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs
@@ -1547,6 +1547,27 @@ namespace MonoDevelop.Projects
var savedXml = File.ReadAllText (p.FileName);
Assert.AreEqual (refXml, savedXml);
}
+
+ [Test]
+ public async Task MSBuildPropertiesSetWhenSaving ()
+ {
+ Solution sol = TestProjectsChecks.CreateConsoleSolution ("console-project-msbuild");
+ sol.ConvertToFormat (MSBuildFileFormat.VS2010);
+
+ var p = sol.GetAllProjects ().First ();
+ var c = (ProjectConfiguration) p.Configurations [0];
+ Assert.IsFalse (p.ProjectProperties.HasProperty ("TargetName"));
+ Assert.IsFalse (p.MSBuildProject.EvaluatedProperties.HasProperty ("TargetName"));
+ Assert.IsFalse (c.Properties.HasProperty ("TargetName"));
+
+ await sol.SaveAsync (Util.GetMonitor ());
+
+ // MSBuild properties defined in imported targets are loaded after saving a project for the first time
+
+ Assert.IsTrue (p.ProjectProperties.HasProperty ("TargetName"));
+ Assert.IsTrue (p.MSBuildProject.EvaluatedProperties.HasProperty ("TargetName"));
+ Assert.IsTrue (c.Properties.HasProperty ("TargetName"));
+ }
}
class MyProjectTypeNode: ProjectTypeNode
diff --git a/main/tests/test-projects/msbuild-project-test/test.csproj b/main/tests/test-projects/msbuild-project-test/test.csproj
index bdd559caf4..ee9f2f29a5 100755
--- a/main/tests/test-projects/msbuild-project-test/test.csproj
+++ b/main/tests/test-projects/msbuild-project-test/test.csproj
@@ -45,6 +45,7 @@
<Meta2>$(Configuration)</Meta2>
</None>
</ItemGroup>
+ <Target Name="Conditioned" Condition="false"></Target>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="extra.csproj" />
</Project>
diff --git a/main/tests/test-projects/unsupported-project-roundtrip/TestApp.WinPhone.csproj b/main/tests/test-projects/unsupported-project-roundtrip/TestApp.WinPhone.csproj
index 4faea6b984..02d7af34ad 100644
--- a/main/tests/test-projects/unsupported-project-roundtrip/TestApp.WinPhone.csproj
+++ b/main/tests/test-projects/unsupported-project-roundtrip/TestApp.WinPhone.csproj
@@ -154,13 +154,13 @@
<HintPath>..\..\packages\WPtoolkit.4.2013.08.16\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Core">
- <HintPath>..\..\packages\Xamarin.Forms.1.0.6186\lib\WP80\Xamarin.Forms.Core.dll</HintPath>
+ <HintPath>..\..\packages\Xamarin.Forms.2.0.1.6505\lib\WP80\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform.WP8">
- <HintPath>..\..\packages\Xamarin.Forms.1.0.6186\lib\WP80\Xamarin.Forms.Platform.WP8.dll</HintPath>
+ <HintPath>..\..\packages\Xamarin.Forms.2.0.1.6505\lib\WP80\Xamarin.Forms.Platform.WP8.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml">
- <HintPath>..\..\packages\Xamarin.Forms.1.0.6186\lib\WP80\Xamarin.Forms.Xaml.dll</HintPath>
+ <HintPath>..\..\packages\Xamarin.Forms.2.0.1.6505\lib\WP80\Xamarin.Forms.Xaml.dll</HintPath>
</Reference>
</ItemGroup>
<Import Project="..\TestApp\TestApp.projitems" Label="Shared" Condition="Exists('..\TestApp\TestApp.projitems')" />
@@ -174,11 +174,11 @@
</Target>
-->
<ProjectExtensions />
- <Import Project="..\..\packages\Xamarin.Forms.1.0.6186\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.1.0.6186\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets')" />
+ <Import Project="..\..\packages\Xamarin.Forms.2.0.1.6505\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.0.1.6505\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
- <Error Condition="!Exists('..\..\packages\Xamarin.Forms.1.0.6186\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.1.0.6186\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets'))" />
+ <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.0.1.6505\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.0.1.6505\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10\Xamarin.Forms.targets'))" />
</Target>
</Project> \ No newline at end of file
diff --git a/main/tests/test-projects/unsupported-project-roundtrip/packages.config b/main/tests/test-projects/unsupported-project-roundtrip/packages.config
index 56ef8e776f..2f70fefc55 100644
--- a/main/tests/test-projects/unsupported-project-roundtrip/packages.config
+++ b/main/tests/test-projects/unsupported-project-roundtrip/packages.config
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="WPtoolkit" version="4.2013.08.16" targetFramework="wp80" />
- <package id="Xamarin.Forms" version="1.0.6186" targetFramework="wp80" />
+ <package id="Xamarin.Forms" version="2.0.1.6505" targetFramework="wp80" />
</packages> \ No newline at end of file