Skip to content

Instantly share code, notes, and snippets.

View mrlacey's full-sized avatar
😇

Matt Lacey mrlacey

😇
View GitHub Profile
@mrlacey
mrlacey / badge.svg
Last active April 3, 2024 21:38
Test result badges from github actions
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
...
<Thickness x:Key="MediumLeftRightMargin">24,0,24,0</Thickness>
...
double AddTwentyPercent(double price) {
return price * 1.2;
}
@mrlacey
mrlacey / FestiveImageTag.cs
Created November 17, 2020 21:13
FestiveEditor - 9
internal class FestiveImageTag : ITag
{
public FestiveImageTag(string term)
{
this.Term = term;
}
public string Term { get; }
}
@mrlacey
mrlacey / FestiveImageTagger.cs
Created November 17, 2020 21:12
FestiveEditor - 8
internal sealed class FestiveImageTagger : RegexTagger<FestiveImageTag>
{
internal FestiveImageTagger(ITextBuffer buffer)
: base(
buffer,
new[] { new Regex(@"\W(\w{3,7})\W", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase) })
{
}
protected override FestiveImageTag TryCreateTagForMatch(Match match)
@mrlacey
mrlacey / FestiveImageTaggerProvider.cs
Created November 17, 2020 21:12
FestiveEditor - 7
[Export(typeof(ITaggerProvider))]
[ContentType("text")]
[TagType(typeof(FestiveImageTag))]
internal sealed class FestiveImageTaggerProvider : ITaggerProvider
{
public ITagger<T> CreateTagger<T>(ITextBuffer buffer)
where T : ITag
{
if (buffer == null)
{
@mrlacey
mrlacey / FestiveImageAdornment.cs
Last active November 17, 2020 21:10
FestiveEditor - 12
internal sealed class FestiveImageAdornment : System.Windows.Controls.Image
{
internal FestiveImageAdornment(FestiveImageTag tag)
{
this.FestiveImageTag = tag;
this.SetSource(this.FestiveImageTag.Term);
this.Height = 20;
this.Width = 20;
}
@mrlacey
mrlacey / FestiveImageAdornmentTagger.cs
Last active November 17, 2020 21:11
FestiveEditor - 11
internal sealed class FestiveImageAdornmentTagger
: IntraTextAdornmentTagger<FestiveImageTag, FestiveImageAdornment>
{
private readonly ITagAggregator<FestiveImageTag> tagger;
private FestiveImageAdornmentTagger(IWpfTextView view, ITagAggregator<FestiveImageTag> tagger)
: base(view)
{
this.tagger = tagger;
}
@mrlacey
mrlacey / FestiveImageAdornmentTaggerProvider.cs
Last active November 17, 2020 21:11
FestiveEditor - 10
[Export(typeof(IViewTaggerProvider))]
[ContentType("text")]
[ContentType("projection")]
[TextViewRole(PredefinedTextViewRoles.Document)]
[TagType(typeof(IntraTextAdornmentTag))]
internal sealed class FestiveImageAdornmentTaggerProvider : IViewTaggerProvider
{
[Import]
internal IBufferTagAggregatorFactoryService BufferTagAggregatorFactoryService;
public void TextViewCreated(IWpfTextView textView)
{
// The adorments will get wired to the text view events
new MistletoeAdornment(textView);
new TopLeftHollyAdornment(textView);
new TopRightHollyAdornment(textView);
new BottomLeftHollyAdornment(textView);
new BottomRightHollyAdornment(textView);
}