Konstantin Koch 8287c54432 Included the Visual Studio extension and made the necessary changes to make it run.
Replaced the old VS templates with ones that offer more flexiblity.
Started replacing the Content Project for the samples with our custom project type.
Inlcuded a basic not yet working AssimpImporter.
2015-04-08 14:50:03 +02:00

89 lines
3.3 KiB
C#

/* ****************************************************************************
*
* Copyright (c) Microsoft Corporation.
*
* This source code is subject to terms and conditions of the Apache License, Version 2.0. A
* copy of the license can be found in the License.html file at the root of this distribution. If
* you cannot locate the Apache License, Version 2.0, please send an email to
* vspython@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
* by the terms of the Apache License, Version 2.0.
*
* You must not remove this notice, or any other, from this software.
*
* ***************************************************************************/
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Project;
using Microsoft.VisualStudio.Project.Automation;
namespace Microsoft.VisualStudio {
static class VsExtensions {
public static string GetFilePath(this ITextView textView) {
return textView.TextBuffer.GetFilePath();
}
#if FALSE
public static ITrackingSpan CreateTrackingSpan(this IIntellisenseSession session, ITextBuffer buffer) {
var triggerPoint = session.GetTriggerPoint(buffer);
var position = session.GetTriggerPoint(buffer).GetPosition(session.TextView.TextSnapshot);
var snapshot = buffer.CurrentSnapshot;
if (position == snapshot.Length) {
return snapshot.CreateTrackingSpan(position, 0, SpanTrackingMode.EdgeInclusive);
} else {
return snapshot.CreateTrackingSpan(position, 1, SpanTrackingMode.EdgeInclusive);
}
}
#endif
public static EnvDTE.Project GetProject(this IVsHierarchy hierarchy) {
object project;
ErrorHandler.ThrowOnFailure(
hierarchy.GetProperty(
VSConstants.VSITEMID_ROOT,
(int)__VSHPROPID.VSHPROPID_ExtObject,
out project
)
);
return (project as EnvDTE.Project);
}
public static CommonProjectNode GetCommonProject(this EnvDTE.Project project) {
OAProject oaProj = project as OAProject;
if (oaProj != null) {
var common = oaProj.Project as CommonProjectNode;
if (common != null) {
return common;
}
}
return null;
}
public static string GetRootCanonicalName(this IVsHierarchy heirarchy) {
string path;
ErrorHandler.ThrowOnFailure(heirarchy.GetCanonicalName(VSConstants.VSITEMID_ROOT, out path));
return path;
}
public static T[] Append<T>(this T[] list, T item) {
T[] res = new T[list.Length + 1];
list.CopyTo(res, 0);
res[res.Length - 1] = item;
return res;
}
public static string GetFilePath(this ITextBuffer textBuffer) {
ITextDocument textDocument;
if (textBuffer.Properties.TryGetProperty<ITextDocument>(typeof(ITextDocument), out textDocument)) {
return textDocument.FilePath;
} else {
return null;
}
}
}
}