Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jagregory
jagregory / gist:17751
Created October 19, 2008 00:14
SmartIndentationBlog.ViewFilterSimple
public class BooViewFilter : ViewFilter
{
public BooViewFilter(CodeWindowManager mgr, IVsTextView view) : base(mgr, view)
{}
}
public bool Execute()
{
int line, col;
view.GetCaretPos(out line, out col);
indenter.SetIndentationForNextLine(line);
return false;
}
string diffContent = File.ReadAllText("MyDiffFile.diff");
Diff diff = Diff.CreateFrom(diffContent);
@@ -1,3 +1,6 @@
This is a small text file
+that I quite like,
with a few lines of text
-inside, nothing much.
public void RebuildGitNumstatParser()
{
var contents = File.ReadAllText(@"..\..\..\SharpDiff\Parsers\GitNumstatParser.ometacs");
var result = Grammars.ParseGrammarThenOptimizeThenTranslate
<OMetaParser, OMetaOptimizer, OMetaTranslator>
(contents,
p => p.Grammar,
o => o.OptimizeGrammar,
t => t.Trans);
public class GitNumstatParser : Parser
{
}
[Test]
public void ParsesNumber()
{
var result = Parse<int>("1", x => x.Number);
Assert.That(result, Is.EqualTo(1));
}
protected T Parse<T>(string text, Func<GitNumstatParser, Rule<char>> ruleFetcher)
{
return Grammars.ParseWith(text, ruleFetcher).As<T>();
}
[Test]
public void ParsesAdditionsAndSubtractionValues()
{
var result = Parse<FileStats>("3\t8\tmyFile.txt\r\n", x => x.Number);
Assert.That(result.Additions, Is.EqualTo(3));
Assert.That(result.Subtractions, Is.EqualTo(8));
}
public class FileStats
{
public FileStats(int additions, int subtractions)
{
Additions = additions;
Subtractions = subtractions;
}
public int Additions { get; private set; }
public int Subtractions { get; private set; }