projectcommands.cs
来自「全功能c#编译器」· CS 代码 · 共 170 行
CS
170 行
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version value="$version"/>
// </file>
using System;
using System.Diagnostics;
using System.IO;
using System.Collections;
using System.Windows.Forms;
using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.Properties;
using ICSharpCode.Core.AddIns.Codons;
using ICSharpCode.Core.Services;
using ICSharpCode.SharpDevelop.Services;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.Dialogs;
using ICSharpCode.SharpDevelop.Internal.Project;
namespace ICSharpCode.SharpDevelop.Commands
{
public class ViewProjectOptions : AbstractMenuCommand
{
public override void Run()
{
IProjectService projectService = (IProjectService)ICSharpCode.Core.Services.ServiceManager.Services.GetService(typeof(IProjectService));
IProject selectedProject = projectService.CurrentSelectedProject;
if (selectedProject == null) {
return;
}
IAddInTreeNode generalOptionsNode = AddInTreeSingleton.AddInTree.GetTreeNode("/SharpDevelop/Workbench/ProjectOptions/GeneralOptions");
IAddInTreeNode configurationPropertiesNode = AddInTreeSingleton.AddInTree.GetTreeNode("/SharpDevelop/Workbench/ProjectOptions/ConfigurationProperties");
using (ProjectOptionsDialog optionsDialog = new ProjectOptionsDialog(selectedProject,
generalOptionsNode,
configurationPropertiesNode)) {
optionsDialog.FormBorderStyle = FormBorderStyle.FixedDialog;
optionsDialog.Owner = (Form)WorkbenchSingleton.Workbench;
if (optionsDialog.ShowDialog() == DialogResult.OK) {
projectService.MarkProjectDirty(projectService.CurrentSelectedProject);
}
}
projectService.SaveCombine();
}
}
public class DeployProject : AbstractMenuCommand
{
public override void Run()
{
IProjectService projectService = (IProjectService)ICSharpCode.Core.Services.ServiceManager.Services.GetService(typeof(IProjectService));
foreach (IViewContent viewContent in WorkbenchSingleton.Workbench.ViewContentCollection) {
if (viewContent.IsDirty) {
viewContent.Save();
}
}
if (projectService.CurrentSelectedProject != null) {
DeployInformation.Deploy(projectService.CurrentSelectedProject);
}
}
}
public class GenerateProjectDocumentation : AbstractMenuCommand
{
public override void Run()
{
try {
IProjectService projectService = (IProjectService)ICSharpCode.Core.Services.ServiceManager.Services.GetService(typeof(IProjectService));
if (projectService.CurrentSelectedProject != null) {
LanguageBindingService languageBindingService = (LanguageBindingService)ICSharpCode.Core.Services.ServiceManager.Services.GetService(typeof(LanguageBindingService));
ILanguageBinding csc = languageBindingService.GetBindingPerLanguageName(projectService.CurrentSelectedProject.ProjectType);
string assembly = csc.GetCompiledOutputName(projectService.CurrentSelectedProject);
string projectFile = Path.ChangeExtension(assembly, ".ndoc");
if (!File.Exists(projectFile)) {
StreamWriter sw = File.CreateText(projectFile);
sw.WriteLine("<project>");
sw.WriteLine(" <assemblies>");
sw.WriteLine(" <assembly location=\""+ assembly +"\" documentation=\"" + Path.ChangeExtension(assembly, ".xml") + "\" />");
sw.WriteLine(" </assemblies>");
/*
sw.WriteLine(" <documenters>");
sw.WriteLine(" <documenter name=\"JavaDoc\">");
sw.WriteLine(" <property name=\"Title\" value=\"NDoc\" />");
sw.WriteLine(" <property name=\"OutputDirectory\" value=\".\\docs\\JavaDoc\" />");
sw.WriteLine(" <property name=\"ShowMissingSummaries\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingRemarks\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingParams\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingReturns\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingValues\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentInternals\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentProtected\" value=\"True\" />");
sw.WriteLine(" <property name=\"DocumentPrivates\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentEmptyNamespaces\" value=\"False\" />");
sw.WriteLine(" <property name=\"IncludeAssemblyVersion\" value=\"False\" />");
sw.WriteLine(" <property name=\"CopyrightText\" value=\"\" />");
sw.WriteLine(" <property name=\"CopyrightHref\" value=\"\" />");
sw.WriteLine(" </documenter>");
sw.WriteLine(" <documenter name=\"MSDN\">");
sw.WriteLine(" <property name=\"OutputDirectory\" value=\".\\docs\\MSDN\" />");
sw.WriteLine(" <property name=\"HtmlHelpName\" value=\"NDoc\" />");
sw.WriteLine(" <property name=\"HtmlHelpCompilerFilename\" value=\"C:\\Program Files\\HTML Help Workshop\\hhc.exe\" />");
sw.WriteLine(" <property name=\"IncludeFavorites\" value=\"False\" />");
sw.WriteLine(" <property name=\"Title\" value=\"An NDoc Documented Class Library\" />");
sw.WriteLine(" <property name=\"SplitTOCs\" value=\"False\" />");
sw.WriteLine(" <property name=\"DefaulTOC\" value=\"\" />");
sw.WriteLine(" <property name=\"ShowVisualBasic\" value=\"True\" />");
sw.WriteLine(" <property name=\"ShowMissingSummaries\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingRemarks\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingParams\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingValues\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentInternals\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentProtected\" value=\"True\" />");
sw.WriteLine(" <property name=\"DocumentPrivates\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentEmptyNamespaces\" value=\"False\" />");
sw.WriteLine(" <property name=\"IncludeAssemblyVersion\" value=\"False\" />");
sw.WriteLine(" <property name=\"CopyrightText\" value=\"\" />");
sw.WriteLine(" <property name=\"CopyrightHref\" value=\"\" />");
sw.WriteLine(" </documenter>");
sw.WriteLine(" <documenter name=\"XML\">");
sw.WriteLine(" <property name=\"OutputFile\" value=\".\\docs\\doc.xml\" />");
sw.WriteLine(" <property name=\"ShowMissingSummaries\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingRemarks\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingParams\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingReturns\" value=\"False\" />");
sw.WriteLine(" <property name=\"ShowMissingValues\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentInternals\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentProtected\" value=\"True\" />");
sw.WriteLine(" <property name=\"DocumentPrivates\" value=\"False\" />");
sw.WriteLine(" <property name=\"DocumentEmptyNamespaces\" value=\"False\" />");
sw.WriteLine(" <property name=\"IncludeAssemblyVersion\" value=\"False\" />");
sw.WriteLine(" <property name=\"CopyrightText\" value=\"\" />");
sw.WriteLine(" <property name=\"CopyrightHref\" value=\"\" />");
sw.WriteLine(" </documenter>");
sw.WriteLine(" </documenters>");*/
sw.WriteLine(" </project>");
sw.Close();
}
FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
string command = fileUtilityService.SharpDevelopRootPath +
Path.DirectorySeparatorChar + "bin" +
Path.DirectorySeparatorChar + "ndoc" +
Path.DirectorySeparatorChar + "NDocGui.exe";
string args = '"' + projectFile + '"';
ProcessStartInfo psi = new ProcessStartInfo(command, args);
psi.WorkingDirectory = fileUtilityService.SharpDevelopRootPath +
Path.DirectorySeparatorChar + "bin" +
Path.DirectorySeparatorChar + "ndoc";
psi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = psi;
p.Start();
}
} catch (Exception) {
MessageBox.Show("You need to compile the project first.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?