aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/IProject.cs
blob: 18d95a7d805fed3428db9bf05f233929e7e18426 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media.Imaging;

namespace Tango.Scripting.IDE
{
    public interface IProject : ISolutionItem
    {
        String FilePath { get; set; }

        String WorkingFolder { get; }

        ObservableCollection<IProjectItem> Items { get; set; }

        Task Build();

        Task Run();
    }
}
es the segments /// in a <see cref="TextSegmentCollection{T}"/>. /// </summary> public class TextSegmentReadOnlySectionProvider<T> : IReadOnlySectionProvider where T : TextSegment { readonly TextSegmentCollection<T> segments; /// <summary> /// Gets the collection storing the read-only segments. /// </summary> public TextSegmentCollection<T> Segments { get { return segments; } } /// <summary> /// Creates a new TextSegmentReadOnlySectionProvider instance for the specified document. /// </summary> public TextSegmentReadOnlySectionProvider(TextDocument textDocument) { segments = new TextSegmentCollection<T>(textDocument); } /// <summary> /// Creates a new TextSegmentReadOnlySectionProvider instance using the specified TextSegmentCollection. /// </summary> public TextSegmentReadOnlySectionProvider(TextSegmentCollection<T> segments) { if (segments == null) throw new ArgumentNullException("segments"); this.segments = segments; } /// <summary> /// Gets whether insertion is possible at the specified offset. /// </summary> public virtual bool CanInsert(int offset) { foreach (TextSegment segment in segments.FindSegmentsContaining(offset)) { if (segment.StartOffset < offset && offset < segment.EndOffset) return false; } return true; } /// <summary> /// Gets the deletable segments inside the given segment. /// </summary> public virtual IEnumerable<ISegment> GetDeletableSegments(ISegment segment) { if (segment == null) throw new ArgumentNullException("segment"); int readonlyUntil = segment.Offset; foreach (TextSegment ts in segments.FindOverlappingSegments(segment)) { int start = ts.StartOffset; int end = start + ts.Length; if (start > readonlyUntil) { yield return new SimpleSegment(readonlyUntil, start - readonlyUntil); } if (end > readonlyUntil) { readonlyUntil = end; } } int endOffset = segment.EndOffset; if (readonlyUntil < endOffset) { yield return new SimpleSegment(readonlyUntil, endOffset - readonlyUntil); } } } }