Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Codist 8.0 Beta #334

Open
17 of 18 tasks
wmjordan opened this issue Aug 30, 2024 · 21 comments
Open
17 of 18 tasks

Codist 8.0 Beta #334

wmjordan opened this issue Aug 30, 2024 · 21 comments
Assignees
Labels
💾 have download

Comments

@wmjordan
Copy link
Owner

wmjordan commented Aug 30, 2024

This is a very early stage of the new version of Codist 8.

Download

Codist 10052

Codist 10033
Codist 10003
Codist 9988
Codist 9978
Codist 9961

What's New

  • Transform Markdown Document 🆕
    This new feature can turn markdown document into an HTML document, or perform XSLT against the XHTML document generated from a markdown document
  • General
    • Display information about scoped variables or parameters introduced in C# 11
  • Syntax Highlight
  • Smart Bar
    • New command to extract lines containing selection into a new document 🆕
    • New option of capitalization (Ctrl: convert snail separated expressions to capitalized symbols) 🆕
    • New command to decode numeric markup entities 🆕
    • Prevent VS from crashing when command throws exception
  • Super Quick Info
  • Navigation Bar
    • A new button to copy markdown titles 🆕
  • Scrollbar Marker
    • Don't crash VS if marker rendition fails
  • Auto Build Version
@wmjordan wmjordan added the 💾 have download label Aug 30, 2024
@wmjordan wmjordan pinned this issue Aug 30, 2024
@wmjordan
Copy link
Owner Author

Beta 9978 allows us to define our own set of regular expressions to highlight our documents.

Here's an example of extra highlight of a markdown file.

image

@wmjordan
Copy link
Owner Author

Beta 9988 adds syntax highlight support for parameters in C# primary constructors.
image

@wmjordan wmjordan self-assigned this Oct 30, 2024
@fitdev
Copy link

fitdev commented Nov 1, 2024

Discovered a small issue with Super Quick Info.

When a type implements a static method with generic type parameters, hovering over the implementation does not list the corresponding Interface and Interface's static abstract member being implemented:

interface ISomething<This, TNum> where This : ISomething<This, TNum> where TNum : unmanaged, INumber<TNum> {
  static abstract This CreateFromOtherNumber<TNumOther>(TNumOther a, TNumOther b) where TNumOther : unmanaged, INumber<TNumOther>;
}

struct Something : ISomething<Something, int> {
  // Hovering over CreateFromOtherNumber member does NOT show that it is an implementation of ISomething<This, TNum>.CreateFromOtherNumber
  public static Something CreateFromOtherNumber<TNumOther>(TNumOther a, TNumOther b) where TNumOther : unmanaged, INumber<TNumOther> => default;
}

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 1, 2024

@fitdev
Your snippet has syntax error. Generic type named TNum is undefined.
It is not possible to display implementation when the parameter is wrong.

@fitdev
Copy link

fitdev commented Nov 2, 2024

Sorry that was a typo, it should have been TNumOther there. Then it works. And the issue remains.

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 2, 2024

Sorry that was a typo, it should have been TNumOther there. Then it works. And the issue remains.

The code was still wrong.
You should see the following error if you are running the most recent preview version of VS:

CS0425: The constraints for type parameter 'TNumOther' of method 'Something.CreateFromOtherNumber(TNumOther, TNumOther)' must match the constraints for type parameter 'TNumOther' of interface method 'ISomething<Something, int>.CreateFromOtherNumber(TNumOther, TNumOther)'. Consider using an explicit interface implementation instead.

image

@fitdev
Copy link

fitdev commented Nov 2, 2024

I have corrected the code above, I replaced TNum with TNumOther in 2 places:

interface ISomething<This, TNum> where This : ISomething<This, TNum> where TNum : unmanaged, INumber<TNum> {
  static abstract This CreateFromOtherNumber<TNumOther>(TNumOther a, TNumOther b) where TNumOther : unmanaged, INumber<TNumOther>;
}

struct Something : ISomething<Something, int> {
  // Hovering over CreateFromOtherNumber member does NOT show that it is an implementation of ISomething<This, TNum>.CreateFromOtherNumber
  public static Something CreateFromOtherNumber<TNumOther>(TNumOther a, TNumOther b) where TNumOther : unmanaged, INumber<TNumOther> => default;
}

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 4, 2024

@fitdev
Please download and test the new beta.

@tranbinhnghia
Copy link

tranbinhnghia commented Nov 4, 2024

@fitdev Please download and test the new beta.

File not found new version Codist 10003 @wmjordan

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 4, 2024

@tranbinhnghia
Weird!
The download was just updated. Please try again.

@tranbinhnghia
Copy link

@tranbinhnghia Weird! The download was just updated. Please try again.

Thank you, I have downloaded the file.

@fitdev
Copy link

fitdev commented Nov 4, 2024

Thank you for a quick fix! Works great!

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 4, 2024

@fitdev
Please help test it.
I don't know whether this fix can break somewhere else (but limited to implementation Quick Info only).

@wmjordan
Copy link
Owner Author

wmjordan commented Nov 5, 2024

There is a new beta version which supports highlighting the output window pane.

To make it work, please see the Wiki page.

@fitdev
Copy link

fitdev commented Nov 5, 2024

Please help test it.

The missing interface member implementation mention in the Super Quick Info now displays correctly. Thank you for the fix!

I will let you know if I encounter any issues.

@fitdev
Copy link

fitdev commented Nov 25, 2024

Just wondering...
Now that VS has released CodeLens API - any plans to use it in Codist?

@wmjordan
Copy link
Owner Author

@fitdev
The VisualStudio.Extensibility thing has been out for quite some years, but not yet officially released.

Once it is used, the support to previous VS version (2017 and 2019) will be probably broken. Since I still have VS 2017 installed on my computer and I have not yet find a must-have usage of the new API, I will keep an eye on it, but stick to the old one unless there is enough motivation for me to move to the new onw.

@fitdev
Copy link

fitdev commented Nov 27, 2024

Thought I would report this just in case...

Syntax highlighting of indexers seems to not work correctly in VS 17.13 P1:

Screenshot_20241127_153134

In the first one, only the wrapped portion of a line gets proper highlighting. In the second one nothing is properly highlighted (note the braces, as well as member names).

Also in my style [Attribute]s should be rendered with a smaller font, and here the font is the same.

@wmjordan
Copy link
Owner Author

Please download the new beta (10052) which has fixed the issue of index highlight introduced in the previous beta.

@fitdev
Copy link

fitdev commented Nov 28, 2024

Thank you! Yes the new beta has fixed it!

@fitdev
Copy link

fitdev commented Nov 29, 2024

BTW: Are there plans to support NaviBar in split document views (right now only one of the split document views is properly reflected in the NaviBar, when switching to another split view NaviBar rmeains unchanged even though the cursor there is in a different type/member)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💾 have download
Projects
None yet
Development

No branches or pull requests

3 participants