Add more C# language features and syntax sugar to highlightning
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Lee el issue 5838 enlazado de github/linguist y compara las características de C# enumeradas con el comportamiento actual de la gramática. Usa los ejemplos proporcionados, incluido extension-method resolving, como casos de aceptación; se considera terminado cuando la sintaxis solicitada se resalta correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
See https://github.com/github/linguist/issues/5838
Describe the enhancement
Currently not all syntax features of C# are highlighted.
My suggestion includes the following (if you would find something missing, feel free to add):
Missing features
For the sake of completeness, I have tried to explicitly assign a feature to a language version here. I could not find the associated standard/proposal for each feature but they do exist.
Standard (Draft v6)
C# language standard - ECMA-TC49-TG2
Unsafe blocks (ECMA Draftv6 22.2)
public void Method() {
unsafe {
// Unsafe operations
}
}
Pointers & pointer fixture (ECMA Draftv6 22.7)
public unsafe void Method() {
fixed(int* ptr = &refVar) {
// Some cool pointer operations
}
}
C# 9
Native Integer Primitives (CSharp 9.0 Proposal)
public void Method() {
nint myNativeInteger = -123;
nuint myNativeUnsignedInteger = 123;
}
public void Method(nint param1, nuint param2) {}
Function pointers (CSharp 9.0 Proposal)
public void Method() {
delegate* managed<int, int>;
delegate* unmanaged<int, int>;
delegate* unmanaged[Cdecl] <int, int>;
delegate* unmanaged[Stdcall, SuppressGCTransition] <int, int>;
}
Static anonymous functions (CSharp 9.0 Proposal)
public void X() {
Y(static (i) => i + 1);
Y(static i => i + 1);
}
public void Y(Func<int, int> x) {}
With expressions (CSharp 9.0 Proposal)
public record MyRecord(string Name);
public MyRecord ModifyName(MyRecord rec) {
return rec with { Name = "My new name" };
}
C# 10
Global Using Directives (CSharp 10.0 Proposal)
global using System;
global using System.Linq;
global using System.Runtime.CompilerServices;
Records (CSharp 10.0 Proposal)
public partial record struct Record {}
public partial sealed record Record {}
public record struct Record {}
public sealed record Record {}
Enhanced Pattern Matching (CSharp 9.0 Proposal + CSharp 10.0 Proposal)
void M(object o1, object o2)
{
var t = (o1, o2);
if (t is (int, string)) {}
switch (o1) {
case int: break;
case string: break;
}
}
bool IsLetter(char c) => c is (>= 'a' and <= 'z') or (>= 'A' and <= 'Z');
Null checks
public void Method(object? nullable) {
if(nullable is null) {}
if(nullable is not null) {}
}
Defaults
public void X() {
int x = default;
}
implicit new
public void Method() {
MyKnownType value = new();
}
Wrong implemented features
Extension method resolving
namespace N1
{
public static class D
{
public static void F(this int i) => Console.WriteLine($"D.F({i})");
}
}
namespace N2
{
using N1;
class Test
{
static void Main(string[] args)
{
1.F();
// ^^ Why is this red?
}
}
}
- Lenguaje dominante
- TypeScript
- Estrellas
- 78
- Forks
- 43
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dotnet/csharp-tmLanguage
-
C# syntax highlighting broken with collection expressions and string interpolation in method callsAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
dotnet/csharp-tmLanguage#332 · 7 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
dotnet/csharp-tmLanguage#336 · 3 comentarios ·
-
[Textmate] `scoped ref` modifierPosiblemente ocupada @JoeRobich la tomó hace 1015 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
dotnet/csharp-tmLanguage#306 ·
-
[Textmate] Local function with attributePosiblemente ocupada @JoeRobich la tomó hace 1015 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
dotnet/csharp-tmLanguage#304 ·
-
[Textmate] Lambda with attributePosiblemente ocupada @JoeRobich la tomó hace 1015 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
dotnet/csharp-tmLanguage#303 ·
Todos los issues de dotnet/csharp-tmLanguage
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
yjh051108/dsh-routing-suite#216 ·
-
kind/bug priority/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dependencies view: `getParent` loops forever on untitled documents, extension host runs out of memoryPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 66/100
apache/fineract-consumer-facing#175 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
awslabs/visual-asset-management-system#413 ·
Los mantenedores suelen responder en 1 día