EnvDTE.Client/Impl/ProjectModelImpl/ProjectItemImplementation.cs (80 lines of code) (raw):
using System;
using EnvDTE;
using JetBrains.Annotations;
using JetBrains.EnvDTE.Client.Impl.AstImpl;
using JetBrains.EnvDTE.Client.Util;
using JetBrains.Rider.Model;
namespace JetBrains.EnvDTE.Client.Impl.ProjectModelImpl
{
public class ProjectItemImplementation(
[NotNull] DteImplementation dte,
[NotNull] ProjectItemModel projectItemModel,
[NotNull] ProjectImplementation containingProject)
: ProjectItem
{
protected DteImplementation DteImplementation => dte;
internal ProjectItemModel ProjectItemModel => projectItemModel;
[NotNull] public DTE DTE => dte;
public short FileCount => 1;
[NotNull]
public string Name
{
get => dte.DteProtocolModel.ProjectItem_get_Name.Sync(new(projectItemModel));
set => dte
.DteProtocolModel
.ProjectItem_set_Name
.Sync(new ProjectItem_set_NameRequest(value, projectItemModel));
}
[NotNull] public virtual string Kind =>
dte.DteProtocolModel.ProjectItem_get_Kind.Sync(new(projectItemModel)).FromRdItemKindModel();
[CanBeNull]
public FileCodeModel FileCodeModel
{
get
{
if (Kind != Constants.vsProjectItemKindPhysicalFile) return null;
var language = dte.DteProtocolModel.ProjectItem_get_Language.Sync(new(projectItemModel));
return !language.IsSupportedLanguage() ? null : new FileCodeModelImpl(dte, this);
}
}
[NotNull]
public virtual ProjectItems ProjectItems =>
new ProjectItemsImplementation(dte, containingProject, this, projectItemModel);
public ProjectItems Collection => containingProject.ProjectItems;
public virtual object Object => this;
public virtual Project SubProject => null;
public Project ContainingProject => containingProject;
public void Remove() => dte.DteProtocolModel.ProjectItem_remove.Sync(new(projectItemModel));
#region NotImplemented
public bool IsDirty
{
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}
public Properties Properties => throw new NotImplementedException();
public object ExtenderNames => throw new NotImplementedException();
public string ExtenderCATID => throw new NotImplementedException();
public bool Saved
{
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}
public ConfigurationManager ConfigurationManager => throw new NotImplementedException();
public Document Document => throw new NotImplementedException();
public string get_FileNames(short index) => throw new NotImplementedException();
public bool SaveAs(string NewFileName) => throw new NotImplementedException();
public bool get_IsOpen(string ViewKind = "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}") =>
throw new NotImplementedException();
public Window Open(string ViewKind = "{00000000-0000-0000-0000-000000000000}") =>
throw new NotImplementedException();
public void ExpandView() => throw new NotImplementedException();
public object get_Extender(string ExtenderName) => throw new NotImplementedException();
public void Save(string FileName = "") => throw new NotImplementedException();
public void Delete() => throw new NotImplementedException();
#endregion NotImplemented
public override bool Equals(object obj) =>
ReferenceEquals(this, obj) || obj is ProjectItemImplementation other &&
projectItemModel.Equals(other.ProjectItemModel);
public override int GetHashCode() => ProjectItemModel.GetHashCode();
}
}