Initial Commit

This commit is contained in:
Tom Longhurst committed 2025-06-25 22:01:46 +01:00
1 parent 13d2051bab
commit eb8b118d62
22 files changed
+1388 -3

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
{
"permissions": {
"allow": [
"mcp__serena__initial_instructions",
"mcp__serena__switch_modes",
"mcp__serena__find_file",
"mcp__serena__get_symbols_overview",
"mcp__serena__find_symbol",
"mcp__serena__search_for_pattern",
"mcp__serena__think_about_task_adherence",
"mcp__serena__replace_regex",
"Bash(uv run:*)",
"mcp__serena__list_dir",
"Bash(uv sync:*)",
"mcp__serena__check_onboarding_performed",
"mcp__serena__read_memory",
"mcp__serena__read_file",
"mcp__zen__thinkdeep",
"mcp__serena__replace_symbol_body",
"Bash(uv pip:*)",
"mcp__serena__summarize_changes",
"Bash(grep:*)",
"mcp__serena__think_about_collected_information",
"mcp__serena__think_about_whether_you_are_done",
"mcp__zen__planner",
"Bash(python test_csharp_indexing.py:*)",
"Bash(rm:*)",
"mcp__serena__list_memories",
"mcp__serena__execute_shell_command",
"mcp__zen__debug",
"Bash(find:*)",
"mcp__serena__activate_project",
"mcp__serena__get_current_config",
"mcp__zen__chat",
"Bash(mkdir:*)",
"Bash(python -m pytest test/solidlsp/csharp/test_csharp_basic.py::TestCSharpBasic::test_language_server_starts -v --no-header)"
],
"deny": []
}
}
Executable → Regular
View File
File mode changed.
+38
View File
@@ -0,0 +1,38 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{0C88DD14-F956-CE84-757C-A364CCF449FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "resources", "resources", "{EF7103B4-4C75-1E6D-A485-A154A88D107A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repos", "repos", "{E2326EEF-E677-6A44-0935-7677816F09E7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csharp", "csharp", "{C21E6CE7-177A-86D9-040F-A317F18B6DBF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject", "test\resources\repos\csharp\test_repo\TestProject.csproj", "{A4D04E18-760A-73F9-3303-0542F6298C84}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A4D04E18-760A-73F9-3303-0542F6298C84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4D04E18-760A-73F9-3303-0542F6298C84}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4D04E18-760A-73F9-3303-0542F6298C84}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4D04E18-760A-73F9-3303-0542F6298C84}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{EF7103B4-4C75-1E6D-A485-A154A88D107A} = {0C88DD14-F956-CE84-757C-A364CCF449FC}
{E2326EEF-E677-6A44-0935-7677816F09E7} = {EF7103B4-4C75-1E6D-A485-A154A88D107A}
{C21E6CE7-177A-86D9-040F-A317F18B6DBF} = {E2326EEF-E677-6A44-0935-7677816F09E7}
{A4D04E18-760A-73F9-3303-0542F6298C84} = {C21E6CE7-177A-86D9-040F-A317F18B6DBF}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BDCA748E-D888-4BAF-BF24-DAC683113BFC}
EndGlobalSection
EndGlobal
@@ -0,0 +1 @@
# Empty __init__.py file to make this directory a Python package
@@ -0,0 +1,339 @@
"""
CSharp Language Server using csharp-ls (Roslyn-based LSP server)
"""
import logging
import os
import pathlib
import shutil
import subprocess
import threading
from overrides import override
from solidlsp.config import LanguageServerConfig
from solidlsp.exceptions import LanguageServerException
from solidlsp.logger import LanguageServerLogger
from solidlsp.ls import SolidLanguageServer
from solidlsp.ls_handler import ProcessLaunchInfo
from solidlsp.ls_types import InitializeParams
def breadth_first_file_scan(root_dir):
"""
Perform a breadth-first scan of files in the given directory.
Yields file paths in breadth-first order.
"""
queue = [root_dir]
while queue:
current_dir = queue.pop(0)
try:
for item in os.listdir(current_dir):
if item.startswith("."):
continue
item_path = os.path.join(current_dir, item)
if os.path.isdir(item_path):
queue.append(item_path)
elif os.path.isfile(item_path):
yield item_path
except (PermissionError, OSError):
# Skip directories we can't access
pass
def find_solution_or_project_file(root_dir) -> str | None:
"""
Find the first .sln file in breadth-first order.
If no .sln file is found, look for a .csproj file.
"""
sln_file = None
csproj_file = None
for filename in breadth_first_file_scan(root_dir):
if filename.endswith(".sln") and sln_file is None:
sln_file = filename
elif filename.endswith(".csproj") and csproj_file is None:
csproj_file = filename
# If we found a .sln file, return it immediately
if sln_file:
return sln_file
# If no .sln file was found, return the first .csproj file
return csproj_file
class CSharpLanguageServer(SolidLanguageServer):
"""
Provides C# specific instantiation of the LanguageServer class using csharp-ls.
csharp-ls is a Roslyn-based LSP server that provides modern C# language features.
"""
def __init__(self, config: LanguageServerConfig, logger: LanguageServerLogger, repository_root_path: str):
"""
Creates a CSharpLanguageServer instance. This class is not meant to be instantiated directly.
Use LanguageServer.create() instead.
"""
csharp_ls_path = self.setup_runtime_dependencies(logger, config)
# Find solution or project file
solution_or_project = find_solution_or_project_file(repository_root_path)
# Build command
cmd_parts = [csharp_ls_path]
# Add logging level if debug is enabled
if logger.logger.level <= logging.DEBUG:
cmd_parts.extend(["--loglevel", "info"])
else:
cmd_parts.extend(["--loglevel", "error"])
# Add solution file if found
if solution_or_project:
# Extract relative path from repository root
rel_path = os.path.relpath(solution_or_project, repository_root_path)
cmd_parts.extend(["--solution", rel_path])
logger.log(f"Using solution/project file: {rel_path}", logging.INFO)
else:
logger.log("No .sln or .csproj file found, csharp-ls will attempt auto-discovery", logging.WARNING)
cmd = " ".join(cmd_parts)
super().__init__(
config,
logger,
repository_root_path,
ProcessLaunchInfo(cmd=cmd, cwd=repository_root_path),
"csharp",
)
self.initialization_complete = threading.Event()
@override
def is_ignored_dirname(self, dirname: str) -> bool:
return super().is_ignored_dirname(dirname) or dirname in ["bin", "obj", "packages", ".vs"]
def setup_runtime_dependencies(self, logger: LanguageServerLogger, config: LanguageServerConfig) -> str:
"""
Set up csharp-ls by ensuring it's installed as a dotnet tool.
Returns the path to the csharp-ls executable.
"""
# First check if csharp-ls is already available in PATH
csharp_ls_path = shutil.which("csharp-ls")
if csharp_ls_path:
logger.log(f"Found csharp-ls in PATH: {csharp_ls_path}", logging.INFO)
return csharp_ls_path
# Check if dotnet is available
dotnet_path = shutil.which("dotnet")
if not dotnet_path:
raise LanguageServerException(
"dotnet SDK is not installed or not in PATH. "
"Please install the .NET SDK from https://dotnet.microsoft.com/download"
)
# Check if csharp-ls is installed as a global tool
try:
result = subprocess.run(
["dotnet", "tool", "list", "-g"],
capture_output=True,
text=True,
check=True
)
if "csharp-ls" in result.stdout:
# csharp-ls is installed, but not in PATH
# Try to find it in the default dotnet tools directory
home = os.path.expanduser("~")
possible_paths = [
os.path.join(home, ".dotnet", "tools", "csharp-ls"),
os.path.join(home, ".dotnet", "tools", "csharp-ls.exe"),
]
for path in possible_paths:
if os.path.exists(path):
logger.log(f"Found csharp-ls at: {path}", logging.INFO)
return path
except subprocess.CalledProcessError:
pass
# Install csharp-ls as a global tool
logger.log("Installing csharp-ls as a global dotnet tool...", logging.INFO)
try:
subprocess.run(
["dotnet", "tool", "install", "-g", "csharp-ls"],
check=True,
capture_output=True,
text=True
)
logger.log("Successfully installed csharp-ls", logging.INFO)
except subprocess.CalledProcessError as e:
# It might already be installed but failed to update
if "is already installed" in e.stderr:
logger.log("csharp-ls is already installed", logging.INFO)
else:
raise LanguageServerException(f"Failed to install csharp-ls: {e.stderr}")
# After installation, try to find it again
csharp_ls_path = shutil.which("csharp-ls")
if csharp_ls_path:
return csharp_ls_path
# Try the default locations again
home = os.path.expanduser("~")
possible_paths = [
os.path.join(home, ".dotnet", "tools", "csharp-ls"),
os.path.join(home, ".dotnet", "tools", "csharp-ls.exe"),
]
for path in possible_paths:
if os.path.exists(path):
logger.log(f"Found csharp-ls at: {path}", logging.INFO)
return path
raise LanguageServerException(
"Failed to find csharp-ls after installation. "
"Please ensure ~/.dotnet/tools is in your PATH"
)
def _get_initialize_params(self, repository_absolute_path: str) -> InitializeParams:
"""
Returns the initialize params for the csharp-ls Language Server.
"""
initialize_params: InitializeParams = { # type: ignore
"processId": os.getpid(),
"rootPath": repository_absolute_path,
"rootUri": pathlib.Path(repository_absolute_path).as_uri(),
"capabilities": {
"workspace": {
"applyEdit": True,
"workspaceEdit": {"documentChanges": True},
"didChangeConfiguration": {"dynamicRegistration": True},
"didChangeWatchedFiles": {"dynamicRegistration": True},
"symbol": {
"dynamicRegistration": True,
"symbolKind": {
"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
},
},
"executeCommand": {"dynamicRegistration": True},
},
"textDocument": {
"synchronization": {
"dynamicRegistration": True,
"willSave": True,
"willSaveWaitUntil": True,
"didSave": True
},
"completion": {
"dynamicRegistration": True,
"contextSupport": True,
"completionItem": {
"snippetSupport": True,
"commitCharactersSupport": True,
"documentationFormat": ["markdown", "plaintext"],
"deprecatedSupport": True,
"preselectSupport": True,
},
"completionItemKind": {
"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
},
},
"hover": {"dynamicRegistration": True, "contentFormat": ["markdown", "plaintext"]},
"signatureHelp": {
"dynamicRegistration": True,
"signatureInformation": {
"documentationFormat": ["markdown", "plaintext"],
"parameterInformation": {"labelOffsetSupport": True},
},
},
"definition": {"dynamicRegistration": True},
"references": {"dynamicRegistration": True},
"documentHighlight": {"dynamicRegistration": True},
"documentSymbol": {
"dynamicRegistration": True,
"symbolKind": {
"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
},
"hierarchicalDocumentSymbolSupport": True,
},
"codeAction": {
"dynamicRegistration": True,
"codeActionLiteralSupport": {
"codeActionKind": {
"valueSet": [
"",
"quickfix",
"refactor",
"refactor.extract",
"refactor.inline",
"refactor.rewrite",
"source",
"source.organizeImports",
]
}
},
},
"codeLens": {"dynamicRegistration": True},
"formatting": {"dynamicRegistration": True},
"rangeFormatting": {"dynamicRegistration": True},
"onTypeFormatting": {"dynamicRegistration": True},
"rename": {"dynamicRegistration": True},
"publishDiagnostics": {"relatedInformation": True},
},
},
"workspaceFolders": [
{"uri": pathlib.Path(repository_absolute_path).as_uri(), "name": os.path.basename(repository_absolute_path)}
],
}
return initialize_params
def _start_server(self):
"""
Starts the csharp-ls Language Server.
Usage:
```
async with lsp.start_server():
# LanguageServer has been initialized
await lsp.request_definition(...)
await lsp.request_references(...)
# Shutdown the LanguageServer on exit from scope
# LanguageServer has been shutdown cleanly
```
"""
def do_nothing(params):
return
def window_log_message(msg):
"""Log messages from the language server."""
message_text = msg.get("message", "")
self.logger.log(f"LSP: window/logMessage: {message_text}", logging.INFO)
# Set up notification handlers
self.server.on_notification("window/logMessage", window_log_message)
self.server.on_notification("$/progress", do_nothing)
self.server.on_notification("textDocument/publishDiagnostics", do_nothing)
self.logger.log("Starting csharp-ls server process", logging.INFO)
self.server.start()
# Send initialization
initialize_params = self._get_initialize_params(self.repository_root_path)
self.logger.log("Sending initialize request to csharp-ls server", logging.INFO)
init_response = self.server.send.initialize(initialize_params)
self.logger.log(f"Received initialize response: {init_response}", logging.DEBUG)
# Verify required capabilities
capabilities = init_response.get("capabilities", {})
assert "textDocumentSync" in capabilities
assert "definitionProvider" in capabilities
assert "referencesProvider" in capabilities
assert "documentSymbolProvider" in capabilities
# Complete initialization
self.server.notify.initialized({})
self.initialization_complete.set()
self.completions_available.set()
self.logger.log("csharp-ls server initialized and ready", logging.INFO)
+2 -2
View File
@@ -135,9 +135,9 @@ class SolidLanguageServer(ABC):
ls = RustAnalyzer(config, logger, repository_root_path)
elif config.code_language == Language.CSHARP:
from solidlsp.language_servers.omnisharp.omnisharp import OmniSharp
from solidlsp.language_servers.csharp_language_server.csharp_language_server import CSharpLanguageServer
ls = OmniSharp(config, logger, repository_root_path)
ls = CSharpLanguageServer(config, logger, repository_root_path)
elif config.code_language == Language.TYPESCRIPT:
from solidlsp.language_servers.typescript_language_server.typescript_language_server import (
@@ -0,0 +1,26 @@
namespace TestProject.Models
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
public Person(string name, int age, string email)
{
Name = name;
Age = age;
Email = email;
}
public override string ToString()
{
return $"{Name} ({Age}) - {Email}";
}
public bool IsAdult()
{
return Age >= 18;
}
}
}
@@ -0,0 +1,43 @@
using System;
namespace TestProject
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
var calculator = new Calculator();
int result = calculator.Add(5, 3);
Console.WriteLine($"5 + 3 = {result}");
}
}
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public int Subtract(int a, int b)
{
return a - b;
}
public int Multiply(int a, int b)
{
return a * b;
}
public double Divide(int a, int b)
{
if (b == 0)
{
throw new DivideByZeroException("Cannot divide by zero");
}
return (double)a / b;
}
}
}
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("TestProject")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+13d2051bab6be61a27562a1dec345394d9406ed5")]
[assembly: System.Reflection.AssemblyProductAttribute("TestProject")]
[assembly: System.Reflection.AssemblyTitleAttribute("TestProject")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
d236faca0a9516c65821191c66ef2203410e818d52783134b3f85ef04a27b229
@@ -0,0 +1,17 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = TestProject
build_property.ProjectDir = \\wsl.localhost\Ubuntu\home\thomh\dev\serena\test\resources\repos\csharp\test_repo\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =
@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
@@ -0,0 +1,360 @@
{
"format": 1,
"restore": {
"\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj": {}
},
"projects": {
"\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj",
"projectName": "TestProject",
"projectPath": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj",
"packagesPath": "C:\\Users\\thomh\\.nuget\\packages\\",
"outputPath": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\thomh\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-preview.4.25204.4/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(, 4.7.32767]",
"Microsoft.NETCore.App": "(, 2.1.32767]",
"Microsoft.VisualBasic": "(, 10.3.32767]",
"Microsoft.Win32.Primitives": "(, 4.3.32767]",
"Microsoft.Win32.Registry": "(, 5.0.32767]",
"runtime.any.System.Collections": "(, 4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(, 4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(, 4.3.32767]",
"runtime.any.System.Globalization": "(, 4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(, 4.3.32767]",
"runtime.any.System.IO": "(, 4.3.32767]",
"runtime.any.System.Reflection": "(, 4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(, 4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(, 4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(, 4.3.32767]",
"runtime.any.System.Runtime": "(, 4.3.32767]",
"runtime.any.System.Runtime.Handles": "(, 4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(, 4.3.32767]",
"runtime.any.System.Text.Encoding": "(, 4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(, 4.3.32767]",
"runtime.any.System.Threading.Tasks": "(, 4.3.32767]",
"runtime.any.System.Threading.Timer": "(, 4.3.32767]",
"runtime.aot.System.Collections": "(, 4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(, 4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(, 4.3.32767]",
"runtime.aot.System.Globalization": "(, 4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(, 4.3.32767]",
"runtime.aot.System.IO": "(, 4.3.32767]",
"runtime.aot.System.Reflection": "(, 4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(, 4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(, 4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(, 4.3.32767]",
"runtime.aot.System.Runtime": "(, 4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(, 4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(, 4.3.32767]",
"runtime.aot.System.Text.Encoding": "(, 4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(, 4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(, 4.3.32767]",
"runtime.aot.System.Threading.Timer": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography.Apple": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(, 4.3.32767]",
"runtime.unix.System.Console": "(, 4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(, 4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(, 4.3.32767]",
"runtime.unix.System.Net.Primitives": "(, 4.3.32767]",
"runtime.unix.System.Net.Sockets": "(, 4.3.32767]",
"runtime.unix.System.Private.Uri": "(, 4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(, 4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(, 4.3.32767]",
"runtime.win.System.Console": "(, 4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(, 4.3.32767]",
"runtime.win.System.IO.FileSystem": "(, 4.3.32767]",
"runtime.win.System.Net.Primitives": "(, 4.3.32767]",
"runtime.win.System.Net.Sockets": "(, 4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(, 4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win7.System.Private.Uri": "(, 4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"System.AppContext": "(, 4.3.32767]",
"System.Buffers": "(, 4.5.32767]",
"System.Collections": "(, 4.3.32767]",
"System.Collections.Concurrent": "(, 4.3.32767]",
"System.Collections.Immutable": "(, 8.0.32767]",
"System.Collections.NonGeneric": "(, 4.3.32767]",
"System.Collections.Specialized": "(, 4.3.32767]",
"System.ComponentModel": "(, 4.3.32767]",
"System.ComponentModel.Annotations": "(, 5.0.32767]",
"System.ComponentModel.EventBasedAsync": "(, 4.3.32767]",
"System.ComponentModel.Primitives": "(, 4.3.32767]",
"System.ComponentModel.TypeConverter": "(, 4.3.32767]",
"System.Console": "(, 4.3.32767]",
"System.Data.Common": "(, 4.3.32767]",
"System.Data.DataSetExtensions": "(, 4.5.32767]",
"System.Diagnostics.Contracts": "(, 4.3.32767]",
"System.Diagnostics.Debug": "(, 4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(, 8.0.32767]",
"System.Diagnostics.FileVersionInfo": "(, 4.3.32767]",
"System.Diagnostics.Process": "(, 4.3.32767]",
"System.Diagnostics.StackTrace": "(, 4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(, 4.3.32767]",
"System.Diagnostics.Tools": "(, 4.3.32767]",
"System.Diagnostics.TraceSource": "(, 4.3.32767]",
"System.Diagnostics.Tracing": "(, 4.3.32767]",
"System.Drawing.Primitives": "(, 4.3.32767]",
"System.Dynamic.Runtime": "(, 4.3.32767]",
"System.Formats.Asn1": "(, 8.0.32767]",
"System.Globalization": "(, 4.3.32767]",
"System.Globalization.Calendars": "(, 4.3.32767]",
"System.Globalization.Extensions": "(, 4.3.32767]",
"System.IO": "(, 4.3.32767]",
"System.IO.Compression": "(, 4.3.32767]",
"System.IO.Compression.ZipFile": "(, 4.3.32767]",
"System.IO.FileSystem": "(, 4.3.32767]",
"System.IO.FileSystem.AccessControl": "(, 5.0.32767]",
"System.IO.FileSystem.DriveInfo": "(, 4.3.32767]",
"System.IO.FileSystem.Primitives": "(, 4.3.32767]",
"System.IO.FileSystem.Watcher": "(, 4.3.32767]",
"System.IO.IsolatedStorage": "(, 4.3.32767]",
"System.IO.MemoryMappedFiles": "(, 4.3.32767]",
"System.IO.Pipes": "(, 4.3.32767]",
"System.IO.Pipes.AccessControl": "(, 4.6.32767]",
"System.IO.UnmanagedMemoryStream": "(, 4.3.32767]",
"System.Linq": "(, 4.3.32767]",
"System.Linq.Expressions": "(, 4.3.32767]",
"System.Linq.Parallel": "(, 4.3.32767]",
"System.Linq.Queryable": "(, 4.3.32767]",
"System.Memory": "(, 4.5.32767]",
"System.Net.Http": "(, 4.3.32767]",
"System.Net.Http.Json": "(, 8.0.32767]",
"System.Net.NameResolution": "(, 4.3.32767]",
"System.Net.NetworkInformation": "(, 4.3.32767]",
"System.Net.Ping": "(, 4.3.32767]",
"System.Net.Primitives": "(, 4.3.32767]",
"System.Net.Requests": "(, 4.3.32767]",
"System.Net.Security": "(, 4.3.32767]",
"System.Net.Sockets": "(, 4.3.32767]",
"System.Net.WebHeaderCollection": "(, 4.3.32767]",
"System.Net.WebSockets": "(, 4.3.32767]",
"System.Net.WebSockets.Client": "(, 4.3.32767]",
"System.Numerics.Vectors": "(, 4.5.32767]",
"System.ObjectModel": "(, 4.3.32767]",
"System.Private.DataContractSerialization": "(, 4.3.32767]",
"System.Private.Uri": "(, 4.3.32767]",
"System.Reflection": "(, 4.3.32767]",
"System.Reflection.DispatchProxy": "(, 4.7.32767]",
"System.Reflection.Emit": "(, 4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(, 4.7.32767]",
"System.Reflection.Emit.Lightweight": "(, 4.7.32767]",
"System.Reflection.Extensions": "(, 4.3.32767]",
"System.Reflection.Metadata": "(, 8.0.32767]",
"System.Reflection.Primitives": "(, 4.3.32767]",
"System.Reflection.TypeExtensions": "(, 4.7.32767]",
"System.Resources.Reader": "(, 4.3.32767]",
"System.Resources.ResourceManager": "(, 4.3.32767]",
"System.Resources.Writer": "(, 4.3.32767]",
"System.Runtime": "(, 4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(, 6.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(, 4.3.32767]",
"System.Runtime.Extensions": "(, 4.3.32767]",
"System.Runtime.Handles": "(, 4.3.32767]",
"System.Runtime.InteropServices": "(, 4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(, 4.3.32767]",
"System.Runtime.InteropServices.WindowsRuntime": "(, 4.3.32767]",
"System.Runtime.Loader": "(, 4.3.32767]",
"System.Runtime.Numerics": "(, 4.3.32767]",
"System.Runtime.Serialization.Formatters": "(, 4.3.32767]",
"System.Runtime.Serialization.Json": "(, 4.3.32767]",
"System.Runtime.Serialization.Primitives": "(, 4.3.32767]",
"System.Runtime.Serialization.Xml": "(, 4.3.32767]",
"System.Runtime.WindowsRuntime": "(, 4.7.32767]",
"System.Runtime.WindowsRuntime.UI.Xaml": "(, 4.7.32767]",
"System.Security.AccessControl": "(, 6.0.32767]",
"System.Security.Claims": "(, 4.3.32767]",
"System.Security.Cryptography.Algorithms": "(, 4.3.32767]",
"System.Security.Cryptography.Cng": "(, 4.6.32767]",
"System.Security.Cryptography.Csp": "(, 4.3.32767]",
"System.Security.Cryptography.Encoding": "(, 4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(, 5.0.32767]",
"System.Security.Cryptography.Primitives": "(, 4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(, 4.3.32767]",
"System.Security.Cryptography.Xml": "(, 4.4.32767]",
"System.Security.Principal": "(, 4.3.32767]",
"System.Security.Principal.Windows": "(, 5.0.32767]",
"System.Security.SecureString": "(, 4.3.32767]",
"System.Text.Encoding": "(, 4.3.32767]",
"System.Text.Encoding.CodePages": "(, 8.0.32767]",
"System.Text.Encoding.Extensions": "(, 4.3.32767]",
"System.Text.Encodings.Web": "(, 8.0.32767]",
"System.Text.Json": "(, 8.0.32767]",
"System.Text.RegularExpressions": "(, 4.3.32767]",
"System.Threading": "(, 4.3.32767]",
"System.Threading.Channels": "(, 8.0.32767]",
"System.Threading.Overlapped": "(, 4.3.32767]",
"System.Threading.Tasks": "(, 4.3.32767]",
"System.Threading.Tasks.Dataflow": "(, 8.0.32767]",
"System.Threading.Tasks.Extensions": "(, 4.5.32767]",
"System.Threading.Tasks.Parallel": "(, 4.3.32767]",
"System.Threading.Thread": "(, 4.3.32767]",
"System.Threading.ThreadPool": "(, 4.3.32767]",
"System.Threading.Timer": "(, 4.3.32767]",
"System.ValueTuple": "(, 4.5.32767]",
"System.Xml.ReaderWriter": "(, 4.3.32767]",
"System.Xml.XDocument": "(, 4.3.32767]",
"System.Xml.XmlDocument": "(, 4.3.32767]",
"System.Xml.XmlSerializer": "(, 4.3.32767]",
"System.Xml.XPath": "(, 4.3.32767]",
"System.Xml.XPath.XDocument": "(, 4.3.32767]"
}
}
}
}
}
}
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\thomh\.nuget\packages\;D:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\thomh\.nuget\packages\" />
<SourceRoot Include="D:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,366 @@
{
"version": 3,
"targets": {
"net8.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net8.0": []
},
"packageFolders": {
"C:\\Users\\thomh\\.nuget\\packages\\": {},
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj",
"projectName": "TestProject",
"projectPath": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj",
"packagesPath": "C:\\Users\\thomh\\.nuget\\packages\\",
"outputPath": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\thomh\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.100-preview.4.25204.4/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(, 4.7.32767]",
"Microsoft.NETCore.App": "(, 2.1.32767]",
"Microsoft.VisualBasic": "(, 10.3.32767]",
"Microsoft.Win32.Primitives": "(, 4.3.32767]",
"Microsoft.Win32.Registry": "(, 5.0.32767]",
"runtime.any.System.Collections": "(, 4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(, 4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(, 4.3.32767]",
"runtime.any.System.Globalization": "(, 4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(, 4.3.32767]",
"runtime.any.System.IO": "(, 4.3.32767]",
"runtime.any.System.Reflection": "(, 4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(, 4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(, 4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(, 4.3.32767]",
"runtime.any.System.Runtime": "(, 4.3.32767]",
"runtime.any.System.Runtime.Handles": "(, 4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(, 4.3.32767]",
"runtime.any.System.Text.Encoding": "(, 4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(, 4.3.32767]",
"runtime.any.System.Threading.Tasks": "(, 4.3.32767]",
"runtime.any.System.Threading.Timer": "(, 4.3.32767]",
"runtime.aot.System.Collections": "(, 4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(, 4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(, 4.3.32767]",
"runtime.aot.System.Globalization": "(, 4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(, 4.3.32767]",
"runtime.aot.System.IO": "(, 4.3.32767]",
"runtime.aot.System.Reflection": "(, 4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(, 4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(, 4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(, 4.3.32767]",
"runtime.aot.System.Runtime": "(, 4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(, 4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(, 4.3.32767]",
"runtime.aot.System.Text.Encoding": "(, 4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(, 4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(, 4.3.32767]",
"runtime.aot.System.Threading.Timer": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography.Apple": "(, 4.3.32767]",
"runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(, 4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography": "(, 4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(, 4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(, 4.3.32767]",
"runtime.unix.System.Console": "(, 4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(, 4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(, 4.3.32767]",
"runtime.unix.System.Net.Primitives": "(, 4.3.32767]",
"runtime.unix.System.Net.Sockets": "(, 4.3.32767]",
"runtime.unix.System.Private.Uri": "(, 4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(, 4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(, 4.3.32767]",
"runtime.win.System.Console": "(, 4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(, 4.3.32767]",
"runtime.win.System.IO.FileSystem": "(, 4.3.32767]",
"runtime.win.System.Net.Primitives": "(, 4.3.32767]",
"runtime.win.System.Net.Sockets": "(, 4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(, 4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(, 4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"runtime.win7.System.Private.Uri": "(, 4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(, 4.3.32767]",
"System.AppContext": "(, 4.3.32767]",
"System.Buffers": "(, 4.5.32767]",
"System.Collections": "(, 4.3.32767]",
"System.Collections.Concurrent": "(, 4.3.32767]",
"System.Collections.Immutable": "(, 8.0.32767]",
"System.Collections.NonGeneric": "(, 4.3.32767]",
"System.Collections.Specialized": "(, 4.3.32767]",
"System.ComponentModel": "(, 4.3.32767]",
"System.ComponentModel.Annotations": "(, 5.0.32767]",
"System.ComponentModel.EventBasedAsync": "(, 4.3.32767]",
"System.ComponentModel.Primitives": "(, 4.3.32767]",
"System.ComponentModel.TypeConverter": "(, 4.3.32767]",
"System.Console": "(, 4.3.32767]",
"System.Data.Common": "(, 4.3.32767]",
"System.Data.DataSetExtensions": "(, 4.5.32767]",
"System.Diagnostics.Contracts": "(, 4.3.32767]",
"System.Diagnostics.Debug": "(, 4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(, 8.0.32767]",
"System.Diagnostics.FileVersionInfo": "(, 4.3.32767]",
"System.Diagnostics.Process": "(, 4.3.32767]",
"System.Diagnostics.StackTrace": "(, 4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(, 4.3.32767]",
"System.Diagnostics.Tools": "(, 4.3.32767]",
"System.Diagnostics.TraceSource": "(, 4.3.32767]",
"System.Diagnostics.Tracing": "(, 4.3.32767]",
"System.Drawing.Primitives": "(, 4.3.32767]",
"System.Dynamic.Runtime": "(, 4.3.32767]",
"System.Formats.Asn1": "(, 8.0.32767]",
"System.Globalization": "(, 4.3.32767]",
"System.Globalization.Calendars": "(, 4.3.32767]",
"System.Globalization.Extensions": "(, 4.3.32767]",
"System.IO": "(, 4.3.32767]",
"System.IO.Compression": "(, 4.3.32767]",
"System.IO.Compression.ZipFile": "(, 4.3.32767]",
"System.IO.FileSystem": "(, 4.3.32767]",
"System.IO.FileSystem.AccessControl": "(, 5.0.32767]",
"System.IO.FileSystem.DriveInfo": "(, 4.3.32767]",
"System.IO.FileSystem.Primitives": "(, 4.3.32767]",
"System.IO.FileSystem.Watcher": "(, 4.3.32767]",
"System.IO.IsolatedStorage": "(, 4.3.32767]",
"System.IO.MemoryMappedFiles": "(, 4.3.32767]",
"System.IO.Pipes": "(, 4.3.32767]",
"System.IO.Pipes.AccessControl": "(, 4.6.32767]",
"System.IO.UnmanagedMemoryStream": "(, 4.3.32767]",
"System.Linq": "(, 4.3.32767]",
"System.Linq.Expressions": "(, 4.3.32767]",
"System.Linq.Parallel": "(, 4.3.32767]",
"System.Linq.Queryable": "(, 4.3.32767]",
"System.Memory": "(, 4.5.32767]",
"System.Net.Http": "(, 4.3.32767]",
"System.Net.Http.Json": "(, 8.0.32767]",
"System.Net.NameResolution": "(, 4.3.32767]",
"System.Net.NetworkInformation": "(, 4.3.32767]",
"System.Net.Ping": "(, 4.3.32767]",
"System.Net.Primitives": "(, 4.3.32767]",
"System.Net.Requests": "(, 4.3.32767]",
"System.Net.Security": "(, 4.3.32767]",
"System.Net.Sockets": "(, 4.3.32767]",
"System.Net.WebHeaderCollection": "(, 4.3.32767]",
"System.Net.WebSockets": "(, 4.3.32767]",
"System.Net.WebSockets.Client": "(, 4.3.32767]",
"System.Numerics.Vectors": "(, 4.5.32767]",
"System.ObjectModel": "(, 4.3.32767]",
"System.Private.DataContractSerialization": "(, 4.3.32767]",
"System.Private.Uri": "(, 4.3.32767]",
"System.Reflection": "(, 4.3.32767]",
"System.Reflection.DispatchProxy": "(, 4.7.32767]",
"System.Reflection.Emit": "(, 4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(, 4.7.32767]",
"System.Reflection.Emit.Lightweight": "(, 4.7.32767]",
"System.Reflection.Extensions": "(, 4.3.32767]",
"System.Reflection.Metadata": "(, 8.0.32767]",
"System.Reflection.Primitives": "(, 4.3.32767]",
"System.Reflection.TypeExtensions": "(, 4.7.32767]",
"System.Resources.Reader": "(, 4.3.32767]",
"System.Resources.ResourceManager": "(, 4.3.32767]",
"System.Resources.Writer": "(, 4.3.32767]",
"System.Runtime": "(, 4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(, 6.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(, 4.3.32767]",
"System.Runtime.Extensions": "(, 4.3.32767]",
"System.Runtime.Handles": "(, 4.3.32767]",
"System.Runtime.InteropServices": "(, 4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(, 4.3.32767]",
"System.Runtime.InteropServices.WindowsRuntime": "(, 4.3.32767]",
"System.Runtime.Loader": "(, 4.3.32767]",
"System.Runtime.Numerics": "(, 4.3.32767]",
"System.Runtime.Serialization.Formatters": "(, 4.3.32767]",
"System.Runtime.Serialization.Json": "(, 4.3.32767]",
"System.Runtime.Serialization.Primitives": "(, 4.3.32767]",
"System.Runtime.Serialization.Xml": "(, 4.3.32767]",
"System.Runtime.WindowsRuntime": "(, 4.7.32767]",
"System.Runtime.WindowsRuntime.UI.Xaml": "(, 4.7.32767]",
"System.Security.AccessControl": "(, 6.0.32767]",
"System.Security.Claims": "(, 4.3.32767]",
"System.Security.Cryptography.Algorithms": "(, 4.3.32767]",
"System.Security.Cryptography.Cng": "(, 4.6.32767]",
"System.Security.Cryptography.Csp": "(, 4.3.32767]",
"System.Security.Cryptography.Encoding": "(, 4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(, 5.0.32767]",
"System.Security.Cryptography.Primitives": "(, 4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(, 4.3.32767]",
"System.Security.Cryptography.Xml": "(, 4.4.32767]",
"System.Security.Principal": "(, 4.3.32767]",
"System.Security.Principal.Windows": "(, 5.0.32767]",
"System.Security.SecureString": "(, 4.3.32767]",
"System.Text.Encoding": "(, 4.3.32767]",
"System.Text.Encoding.CodePages": "(, 8.0.32767]",
"System.Text.Encoding.Extensions": "(, 4.3.32767]",
"System.Text.Encodings.Web": "(, 8.0.32767]",
"System.Text.Json": "(, 8.0.32767]",
"System.Text.RegularExpressions": "(, 4.3.32767]",
"System.Threading": "(, 4.3.32767]",
"System.Threading.Channels": "(, 8.0.32767]",
"System.Threading.Overlapped": "(, 4.3.32767]",
"System.Threading.Tasks": "(, 4.3.32767]",
"System.Threading.Tasks.Dataflow": "(, 8.0.32767]",
"System.Threading.Tasks.Extensions": "(, 4.5.32767]",
"System.Threading.Tasks.Parallel": "(, 4.3.32767]",
"System.Threading.Thread": "(, 4.3.32767]",
"System.Threading.ThreadPool": "(, 4.3.32767]",
"System.Threading.Timer": "(, 4.3.32767]",
"System.ValueTuple": "(, 4.5.32767]",
"System.Xml.ReaderWriter": "(, 4.3.32767]",
"System.Xml.XDocument": "(, 4.3.32767]",
"System.Xml.XmlDocument": "(, 4.3.32767]",
"System.Xml.XmlSerializer": "(, 4.3.32767]",
"System.Xml.XPath": "(, 4.3.32767]",
"System.Xml.XPath.XDocument": "(, 4.3.32767]"
}
}
}
}
}
@@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "sU5VuO9sK6M=",
"success": true,
"projectFilePath": "\\\\wsl.localhost\\Ubuntu\\home\\thomh\\dev\\serena\\test\\resources\\repos\\csharp\\test_repo\\TestProject.csproj",
"expectedPackageFiles": [],
"logs": []
}
+3 -1
View File
@@ -31,7 +31,7 @@ def serena_config():
"""Create an in-memory configuration for tests with test repositories pre-registered."""
# Create test projects for all supported languages
test_projects = []
for language in [Language.PYTHON, Language.GO, Language.JAVA, Language.RUST, Language.TYPESCRIPT, Language.PHP]:
for language in [Language.PYTHON, Language.GO, Language.JAVA, Language.RUST, Language.TYPESCRIPT, Language.PHP, Language.CSHARP]:
repo_path = get_repo_path(language)
if repo_path.exists():
project_name = f"test_repo_{language}"
@@ -94,6 +94,7 @@ class TestSerenaAgent:
pytest.param(Language.RUST, "add", "Function", "lib.rs", marks=pytest.mark.rust),
pytest.param(Language.TYPESCRIPT, "DemoClass", "Class", "index.ts", marks=pytest.mark.typescript),
pytest.param(Language.PHP, "helperFunction", "Function", "helper.php", marks=pytest.mark.php),
pytest.param(Language.CSHARP, "Calculator", "Class", "Program.cs", marks=pytest.mark.csharp),
],
indirect=["serena_agent"],
)
@@ -132,6 +133,7 @@ class TestSerenaAgent:
pytest.param(Language.RUST, "add", os.path.join("src", "lib.rs"), os.path.join("src", "main.rs"), marks=pytest.mark.rust),
pytest.param(Language.TYPESCRIPT, "helperFunction", "index.ts", "use_helper.ts", marks=pytest.mark.typescript),
pytest.param(Language.PHP, "helperFunction", "helper.php", "index.php", marks=pytest.mark.php),
pytest.param(Language.CSHARP, "Calculator", "Program.cs", "Program.cs", marks=pytest.mark.csharp),
],
indirect=["serena_agent"],
)
+82
View File
@@ -0,0 +1,82 @@
"""
Basic tests for C# language server functionality.
"""
import os
from pathlib import Path
import pytest
from solidlsp import SolidLanguageServer
from solidlsp.ls_config import Language
from test.conftest import create_ls
@pytest.fixture
def csharp_ls() -> SolidLanguageServer:
"""Create a C# language server instance for testing."""
repo_path = Path(__file__).parent.parent.parent / "resources" / "repos" / "csharp" / "test_repo"
return create_ls(Language.CSHARP, str(repo_path))
class TestCSharpBasic:
"""Basic tests for C# language server."""
def test_language_server_starts(self, csharp_ls: SolidLanguageServer):
"""Test that the C# language server starts successfully."""
assert csharp_ls is not None
assert csharp_ls.language == Language.CSHARP
def test_get_document_symbols(self, csharp_ls: SolidLanguageServer):
"""Test getting document symbols from a C# file."""
file_path = os.path.join("Program.cs")
symbols = csharp_ls.get_document_symbols(file_path)
# Check that we have symbols
assert len(symbols) > 0
# Look for expected classes
class_names = [s.name for s in symbols if "class" in s.kind.name.lower()]
assert "Program" in class_names
assert "Calculator" in class_names
def test_find_definition(self, csharp_ls: SolidLanguageServer):
"""Test finding definition of a symbol."""
file_path = os.path.join("Program.cs")
# Open the file first
with csharp_ls.open_file(file_path):
# Find usage of Calculator class (line 11, column 28)
definitions = csharp_ls.request_definition(file_path, 11, 28)
# Should find the Calculator class definition
assert len(definitions) > 0
assert any("Calculator" in str(d) for d in definitions)
def test_find_references(self, csharp_ls: SolidLanguageServer):
"""Test finding references to a symbol."""
file_path = os.path.join("Program.cs")
# Open the file first
with csharp_ls.open_file(file_path):
# Find references to the Add method (line 19)
references = csharp_ls.request_references(file_path, 19, 20, include_declaration=True)
# Should find at least the definition and one usage
assert len(references) >= 2
def test_nested_namespace_symbols(self, csharp_ls: SolidLanguageServer):
"""Test getting symbols from nested namespace."""
file_path = os.path.join("Models", "Person.cs")
symbols = csharp_ls.get_document_symbols(file_path)
# Check that we have the Person class
assert any(s.name == "Person" and "class" in s.kind.name.lower() for s in symbols)
# Check for properties and methods
symbol_names = [s.name for s in symbols]
assert "Name" in symbol_names
assert "Age" in symbol_names
assert "Email" in symbol_names
assert "ToString" in symbol_names
assert "IsAdult" in symbol_names