Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc

Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

Dokładnie tego samego dnia, w którym opublikowałem trzecią część tej serii ukazała się oficjalna wersja beta ReSharpera 4.5. Z jednej strony ucieszyłem się, że w końcu będę mógł zobaczyć kolejne wydanie (nocnych buildów nie instalowałem z racji ich małej stabilności). Z drugiej jednak strony trochę się zmartwiłem, bo prawdopodobnie odcinek trzeci właśnie mocno stracił na aktualności. Na blogu ReSharper Horizons przeczytałem, że

„… we decided that performance, memory usage and building a foundation for further improvements were of a higher priority than API compatibility. Without that massive code cleanup we would have been spending more and more resources to make our product better for you, and without much success. Please accept our apologies, plug-in developers!”.

Nie będę na zaistniałą sytuację narzekał, bo zgadzam się z ich założeniami. Ciekawiło mnie jednak jak bardzo moja wiedza na temat wewnętrznej struktury R# się przedawniła.

Odnosząc się do poprzedniego odcinka zmian na szczęście nie będzie wiele. Zacznijmy tak jak poprzednio od implementacji Deamon Stage.

[DaemonStage]
public class SharpedDaemonStage : CSharpDaemonStageBase
{
public override IDaemonStageProcess CreateProcess(IDaemonProcess process, DaemonProcessKind processKind)
{
if (process == null) return null;
if (IsSupported(process.ProjectFile) == false) return null;

return new SharpedDaemonStageProcess(process);
}

public override ErrorStripeRequest NeedsErrorStripe(IProjectFile projectFile)
{
return ErrorStripeRequest.STRIPE_AND_ERRORS;
}
}

Jedyna zmiana, jaką można zauważyć, to drugi parametr metody CreateProcess. Z tego co wyczytałem w krótkim opisie zmian parametr ten może posłużyć np. do wyłączenia naszego etapu z procesu analizy całego solution, ale w większości przypadków można go zignorować.

Drugim elementem był Daemon Stage Process.

internal class SharpedDaemonStageProcess : CSharpDaemonStageProcessBase
{
public SharpedDaemonStageProcess(IDaemonProcess daemonProcess)
: base(daemonProcess)
{
}

public override void Execute(System.Action<DaemonStageResult> commiter)
{
HighlightInFile(file => file.ProcessDescendants(this), commiter);
}

public override void VisitThrowStatement(IThrowStatement throwStatementParam)
{
this.AddHighlighting(new ThrowHighlighting(throwStatementParam));
}
}

Tu też zmiany są niewielkie. Trochę zmieniło się wywoływanie procesu analizy drzewa pliku. Samo wywołanie metody ProcessDescendants zostało takie samo. Na podstawie tego, co powiedział mi wuj Reflector to widać refaktoryzację procesu podświetlania. Teraz nie dostajemy bezpośrednio pliku, na którym mamy działać, ale zostało to ukryte w metodzie HighlightInFile, która wywołuje naszego delegata z odpowiednim plikiem.

protected void HighlightInFile(Action<ICSharpFile> fileHighlighter, Action<DaemonStageResult> commiter)
{
fileHighlighter(this.File);
commiter(new DaemonStageResult(this.myHighlightingInfos));
}

Ostatnim elementem była klasa podświetlenia. Tam też nie dostrzeżemy wielu zmian.

[StaticSeverityHighlighting(Severity.WARNING)]
public class ThrowHighlighting : CSharpHighlightingBase, IHighlighting
{
private IThrowStatement ThrowStatement { get; set; }

public ThrowHighlighting(IThrowStatement throwStatement)
{
ThrowStatement = throwStatement;
}

public override bool IsValid()
{
return true;
}

public override DocumentRange Range
{
get { return this.ThrowStatement.ToTreeNode().ThrowKeyword.GetDocumentRange(); }
}

public string ErrorStripeToolTip
{
get { return "This is throw statement! (on a strip)"; }
}

public int NavigationOffsetPatch
{
get { return 0; }
}

public string ToolTip
{
get { return "This is throw statement! (tool tip)"; }
}
}

Jedyną różnicą jest fakt, że zostaliśmy zobligowani do zaimplementowania jeszcze jednej metody – IsValid. Z tego, co się orientuję to za pomocą wyniku działania tej metody możemy powiedzieć R#owi, że nasze podświetlenie jest z jakichś powodów nieaktualne, niepoprawne.

Jak widać zmian w naszym przykładzie nie było zbyt wiele, ale można się było tego spodziewać, jako że nie wykorzystujemy jakoś bardzo najważniejszych elementów R#. To dopiero przed nami. Z bezpośrednio zauważalnych zmian widać, ze liczba zestawów (ang. assembly) chyba się podwoiła. Poza tym rzeczywiście przerobili część podstawowych elementów systemu, ale teraz nie ma sensu wchodzić w szczegóły. JetBrains udostępniło migration guide, którym pokrótce omówili najważniejsze zmiany.

  1. R#4.5 Beta i errata do trzeciego odcinka (ten tekst)
  2. ...
Opublikowane 17 marca 2009 14:13 przez nuwanda
Filed under: ,

Attachment(s): SharpedPlugin_4.zip

Powiadamianie o komentarzach

Jeżeli chciałbyś otrzymywać email gdy ta wypowiedź zostanie zaktualizowana, to zarejestruj się tutaj

Subskrybuj komentarze za pomocą RSS

Komentarze:

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

4 stycznia 2014 04:46 by Dionna

Saludos Salaboy felicitaciones por su magnedfico trbjaao con el Jbpm Framework, tengo entendido que Ud. este1 a cargo del Developer Guide JBPM 5.x, le comento que tenemos ace1 en Ecuador un equipo de desarrollo con un proyecto bien interesante en el que pensamos usar Jbpm 5, el equipo es bien entusiasta y hemos seguido cada uno de sus posts estudiando la manera de sacarle el me1ximo provecho a la tecnologeda, estamos muy interesados en que Ud. nos capacite en este tema, cf3mo pudie9ramos ponernos de acuerdo y llegar, si le interesa a un acuerdo para una capacitacif3n, conferencias o algo SaludosBuck

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

4 stycznia 2014 18:56 by Kimberley

O teu ficheiro<a href="http://zumuypxk.com"> pcaere</a>-me bastante completo no sentido em que<a href="http://zumuypxk.com"> pcaere</a> servir para qualquer app que desenvolvas a utilizar Visual Studio   ne3o apenas Windows 8.

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

23 stycznia 2014 02:14 by Yelhsa

Home run! Great slugnigg with that answer! http://avdygxah.com [url=http://qqifswckzl.com]qqifswckzl[/url] [link=http://xutepr.com]xutepr[/link]

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

25 stycznia 2014 23:50 by Gracelyn

 [url=http://www.businessinsurrates.com]business insurance[/url]   [url=http://larsbolanderblog.com/blackjack.html]larsbolanderblog.com[/url]   [url=http://forexlikepro.com]foreign exchange forex[/url]   [url=http://www.medinsurers.com]pa health insurance[/url]   [url=http://www.medspricechart.com]blood pressure impotence[/url]   [url=http://www.cheapinsurancemate.com]auto insurance quotes online[/url]   [url=http://baapalsa2013.com]learn forex currency trading online[/url]

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

31 stycznia 2014 03:46 by Chiana

 [url=http://www.ensureyourself.com]www.ensureyourself.com[/url]   [url=http://www.premierkiwi.com/]Cheap Car Insurance Quote[/url]   [url=http://www.atoolboxfordad.com/]www.atoolboxfordad.com[/url]   [url=http://www.prchicagoway.com/]healthcare insurance group[/url]   [url=http://www.alphacardblog.com/]oakland car insurance[/url]

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

6 lutego 2014 06:28 by Elida

 [url=http://www.loadingstudios.com/]car insurance quote[/url]   [url=http://www.catholicdistanceu.com/]cheapest cialis[/url]   [url=http://www.atoolboxfordad.com/]Get a Car Insurance Quote[/url]   [url=http://www.menshealthprice.com/]viagra cialis levitra[/url]   [url=http://www.celticgreenla.com/]car insurance village[/url]

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

14 lutego 2014 09:53 by Crissy

 [url=http://www.yldiablog.com/]where to buy cheap cialis[/url]   [url=http://www.careforyourhealth.net]insurance insurance health[/url]   [url=http://www.lifewithconfidence.net]term life insurance quotes comaprisons[/url]   [url=http://www.antidepressioncare.com]prozac,online[/url]   [url=http://www.findyourcollegesonline.com]online music business degree[/url]

# re: Wtyczki do ReSharper 4.5 – Odc. 4 – R#4.5 Beta i errata do trzeciego odcinka

9 kwietnia 2014 17:12 by Jaundalynn

 [url=http://topantidepressantonline.com]no prescription prozac[/url]   [url=http://wwwlevitracom.net]levitra[/url]   [url=http://wwwcialis.net]cialis online[/url]   [url=http://mycheapinsuranceonline.net]baja car insurance[/url]

Co o tym myślisz?

(wymagane) 
wymagane 
(wymagane) 

  
Wprowadź kod: (wymagane)