Move CI to GitHub Actions, use modern .NET project (#67)

This commit is contained in:
Alexander Köplinger 2020-10-07 20:21:54 +02:00 коммит произвёл GitHub
Родитель b8dc74456a
Коммит 14ab7f9912
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
30 изменённых файлов: 207 добавлений и 460 удалений

84
.github/workflows/build.yml поставляемый
Просмотреть файл

@ -1 +1,85 @@
name: Extension CI
on:
push:
branches:
- master
tags:
- 'v*'
pull_request:
branches:
- master
release:
types:
- published
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.301
- name: Install NPM packages
run: npm install
- name: Build VSIX
run: make
- name: Set VSIX name variable
id: vsix_name
run: echo "::set-output name=filename::$(ls mono-debug-*.vsix)"
- name: Run tests
uses: GabrielBB/xvfb-action@v1.4
with:
run: make run-tests
- name: Upload CI VSIX
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v2
with:
name: mono-debug-${{ env.GITHUB_SHA }}.vsix
path: ${{ steps.vsix_name.outputs.filename }}
- name: Create Release
if: success() && startsWith(github.ref, 'refs/tags/v')
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Upload Release VSIX
if: success() && startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ steps.vsix_name.outputs.filename }}
asset_name: ${{ steps.vsix_name.outputs.filename }}
asset_content_type: application/zip
- name: Publish to VS Marketplace
if: success() && startsWith(github.ref, 'refs/tags/v')
run: make publish
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}

6
.gitignore поставляемый
Просмотреть файл

@ -1,10 +1,10 @@
/out/ /out/
/extension/ /extension/
/upload/ /upload/
/bin/ bin/
/node_modules/ /node_modules/
/packages/ /packages/
/obj/ obj/
/mono-debug-*/ /mono-debug-*/
*.vsix *.vsix
*.zip *.zip
@ -13,4 +13,4 @@
mono-debug.userprefs mono-debug.userprefs
npm-debug.log npm-debug.log
.vs/ .vs/
/.DS_Store .DS_Store

Просмотреть файл

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
</configuration>

Двоичные данные
.nuget/NuGet.exe

Двоичный файл не отображается.

Просмотреть файл

@ -1,144 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
</PropertyGroup>
<PropertyGroup>
<PackagesProjectConfig Condition=" '$(OS)' == 'Windows_NT'">$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config</PackagesProjectConfig>
<PackagesProjectConfig Condition=" '$(OS)' != 'Windows_NT'">$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config</PackagesProjectConfig>
</PropertyGroup>
<PropertyGroup>
<PackagesConfig Condition="Exists('$(MSBuildProjectDirectory)\packages.config')">$(MSBuildProjectDirectory)\packages.config</PackagesConfig>
<PackagesConfig Condition="Exists('$(PackagesProjectConfig)')">$(PackagesProjectConfig)</PackagesConfig>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 "$(NuGetExePath)"</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch>
<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir>
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
parallel builds will have to wait for it to complete.
-->
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" />
</Target>
<Target Name="_DownloadNuGet">
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
</Project>

Просмотреть файл

@ -1,23 +0,0 @@
language: csharp
mono:
- latest
solution: mono-debug.sln
git:
submodules: true
before_install:
- git clone https://github.com/creationix/nvm.git ./.nvm
- source ./.nvm/nvm.sh
- nvm install 14
- nvm use 14
install:
- nuget restore mono-debug.sln
- nuget restore external/debugger-libs/debugger-libs.sln
- npm install
script:
- npm test

Просмотреть файл

@ -5,10 +5,10 @@ MONO_DEBUG_DEBUG = "./bin/Debug/mono-debug.exe"
all: vsix all: vsix
@echo "vsix created" @echo "vsix created"
vsix: $MONO_DEBUG_RELEASE vsix: build
./node_modules/.bin/vsce package ./node_modules/.bin/vsce package
publish: $MONO_DEBUG_RELEASE publish:
./node_modules/.bin/vsce publish ./node_modules/.bin/vsce publish
build: $MONO_DEBUG_RELEASE build: $MONO_DEBUG_RELEASE
@ -20,16 +20,25 @@ debug: $MONO_DEBUG_DEBUG
@echo "build finished" @echo "build finished"
$MONO_DEBUG_RELEASE: $MONO_DEBUG_RELEASE:
msbuild /p:Configuration=Release mono-debug.sln msbuild /v:minimal /restore /p:Configuration=Release src/csharp/mono-debug.csproj
$MONO_DEBUG_DEBUG: $MONO_DEBUG_DEBUG:
msbuild /p:Configuration=Debug mono-debug.sln msbuild /v:minimal /restore /p:Configuration=Debug src/csharp/mono-debug.csproj
tests: tests:
cd testdata/simple; make dotnet build /nologo testdata/simple
cd testdata/output; make dotnet build /nologo testdata/output
cd testdata/simple_break; make dotnet build /nologo testdata/simple_break
cd testdata/fsharp; make dotnet build /nologo testdata/fsharp
run-tests: tests
node_modules/.bin/mocha --timeout 10000 -u tdd ./out/tests
lint:
node_modules/.bin/eslint . --ext .ts,.tsx
watch:
node_modules/.bin/tsc -w -p ./src/typescript
clean: clean:
git clean -xfd git clean -xfd

Просмотреть файл

@ -1,31 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("mono-debug")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Visual Studio Code")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

Просмотреть файл

@ -6,7 +6,7 @@ A simple VS Code debugger extension for the Mono VM. Its implementation was insp
## Installing Mono ## Installing Mono
You can either download the latest Mono version for Linux, macOS, or Windows at [Mono project](http://www.mono-project.com/download/) or you can use your package manager. You can either download the latest Mono version for Linux, macOS, or Windows at the [Mono project website](https://www.mono-project.com/download/) or you can use your package manager.
* On OS X: `brew install mono` * On OS X: `brew install mono`
* On Linux: `sudo apt-get install mono-complete` * On Linux: `sudo apt-get install mono-complete`
@ -15,13 +15,13 @@ You can either download the latest Mono version for Linux, macOS, or Windows at
To enable debugging of Mono based C# (and F#) programs, you have to pass the `-debug` option to the compiler: To enable debugging of Mono based C# (and F#) programs, you have to pass the `-debug` option to the compiler:
``` ```bash
mcs -debug Program.cs csc -debug Program.cs
``` ```
If you want to attach the VS Code debugger to a Mono program, pass these additional arguments to the Mono runtime: If you want to attach the VS Code debugger to a Mono program, pass these additional arguments to the Mono runtime:
``` ```bash
mono --debug --debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:55555 Program.exe mono --debug --debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:55555 Program.exe
``` ```
@ -44,21 +44,21 @@ The corresponding attach `launch.json` configuration looks like this:
## Building the mono-debug extension ## Building the mono-debug extension
[![build status](https://travis-ci.org/Microsoft/vscode-mono-debug.svg?branch=master)](https://travis-ci.org/Microsoft/vscode-mono-debug) [![build status](https://github.com/microsoft/vscode-mono-debug/workflows/Extension%20CI/badge.svg)](https://github.com/microsoft/vscode-mono-debug/actions)
Building and using VS Code mono-debug requires a basic POSIX-like environment, a Bash-like Building and using VS Code mono-debug requires a basic POSIX-like environment, a Bash-like
shell, and an installed Mono framework. shell, and an installed Mono framework.
First, clone the mono-debug project: First, clone the mono-debug project:
``` ```bash
$ git clone https://github.com/Microsoft/vscode-mono-debug $ git clone https://github.com/microsoft/vscode-mono-debug
``` ```
To build the extension vsix, run: To build the extension vsix, run:
``` ```bash
$ cd vscode-mono-debug $ cd vscode-mono-debug
$ npm install $ npm install
$ make $ make
``` ```

Просмотреть файл

@ -8,11 +8,11 @@ and licenses under which Microsoft received such components are set forth below.
expressly granted herein, whether by implication, estoppel or otherwise. expressly granted herein, whether by implication, estoppel or otherwise.
1. SDB version 1.4 (https://github.com/mono/sdb) 1. SDB (https://github.com/mono/sdb)
2. debugger-libs version 9.0.21022 (https://github.com/mono/debugger-libs) 2. Mono debugger-libs (https://github.com/mono/debugger-libs)
3. newtonsoft.json version 6.0.8 (https://github.com/JamesNK/Newtonsoft.Json) 3. Newtonsoft.Json (https://github.com/JamesNK/Newtonsoft.Json)
4. NRefactory version 10.0.0 (https://github.com/icsharpcode/NRefactory) 4. NRefactory (https://github.com/xamarin/NRefactory)
5. Cecil version 0.9.5.0 (https://github.com/jbevain/cecil) 5. Cecil (https://github.com/jbevain/cecil)
%% SDB NOTICES AND INFORMATION BEGIN HERE %% SDB NOTICES AND INFORMATION BEGIN HERE

Просмотреть файл

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>VSCodeDebug</RootNamespace>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Externalconsole>true</Externalconsole>
<AssemblyName>mono-debug</AssemblyName>
<Commandlineparameters>--server=4711</Commandlineparameters>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Externalconsole>true</Externalconsole>
<AssemblyName>mono-debug</AssemblyName>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="ICSharpCode.NRefactory">
<HintPath>packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory.CSharp">
<HintPath>packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>packages\Mono.Cecil.0.10.1\lib\net40\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb">
<HintPath>packages\Mono.Cecil.0.10.1\lib\net40\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb">
<HintPath>packages\Mono.Cecil.0.10.1\lib\net40\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks">
<HintPath>packages\Mono.Cecil.0.10.1\lib\net40\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="src\MonoDebugSession.cs" />
<Compile Include="src\Handles.cs" />
<Compile Include="src\Utilities.cs" />
<Compile Include="src\DebugSession.cs" />
<Compile Include="src\MonoDebug.cs" />
<Compile Include="src\Protocol.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<None Include="package.json" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
<ItemGroup>
<Folder Include="src\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft.csproj">
<Project>{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}</Project>
<Name>Mono.Debugger.Soft</Name>
</ProjectReference>
<ProjectReference Include="external\debugger-libs\Mono.Debugging\Mono.Debugging.csproj">
<Project>{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}</Project>
<Name>Mono.Debugging</Name>
</ProjectReference>
<ProjectReference Include="external\debugger-libs\Mono.Debugging.Soft\Mono.Debugging.Soft.csproj">
<Project>{DE40756E-57F6-4AF2-B155-55E3A88CCED8}</Project>
<Name>Mono.Debugging.Soft</Name>
</ProjectReference>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,105 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
VisualStudioVersion = 14.0.22823.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mono-debug", "mono-debug.csproj", "{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Debugging.Soft", "external\debugger-libs\Mono.Debugging.Soft\Mono.Debugging.Soft.csproj", "{DE40756E-57F6-4AF2-B155-55E3A88CCED8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Debugger.Soft", "external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft.csproj", "{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Debugging", "external\debugger-libs\Mono.Debugging\Mono.Debugging.csproj", "{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "external", "external", "{E023475B-7BCC-48DC-9D39-609F6AC4BC37}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory", "external\nrefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj", "{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp", "external\nrefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj", "{53DCA265-3C3C-42F9-B647-F72BA678122B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B18B22D-6B1A-4BF9-BD46-DF84EE2181C5}.Release|Any CPU.Build.0 = Release|Any CPU
{DE40756E-57F6-4AF2-B155-55E3A88CCED8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE40756E-57F6-4AF2-B155-55E3A88CCED8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE40756E-57F6-4AF2-B155-55E3A88CCED8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE40756E-57F6-4AF2-B155-55E3A88CCED8}.Release|Any CPU.Build.0 = Release|Any CPU
{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}.Release|Any CPU.Build.0 = Release|Any CPU
{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2}.Release|Any CPU.Build.0 = Release|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.Build.0 = Release|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
$0.DotNetNamingPolicy = $1
$1.DirectoryNamespaceAssociation = None
$1.ResourceNamePolicy = FileFormatDefault
$0.TextStylePolicy = $2
$2.FileWidth = 160
$2.TabsToSpaces = False
$2.inheritsSet = VisualStudio
$2.inheritsScope = text/plain
$2.scope = text/x-csharp
$0.CSharpFormattingPolicy = $3
$3.SimplePropertyFormatting = ForceNewLine
$3.EnumBraceStyle = EndOfLine
$3.ConstructorBraceStyle = EndOfLine
$3.DestructorBraceStyle = EndOfLine
$3.ElseNewLinePlacement = NewLine
$3.CatchNewLinePlacement = NewLine
$3.FinallyNewLinePlacement = NewLine
$3.WhileNewLinePlacement = DoNotCare
$3.ArrayInitializerWrapping = DoNotChange
$3.ArrayInitializerBraceStyle = NextLine
$3.BeforeMethodDeclarationParentheses = False
$3.BeforeMethodCallParentheses = False
$3.BeforeConstructorDeclarationParentheses = False
$3.NewLineBeforeConstructorInitializerColon = NewLine
$3.NewLineAfterConstructorInitializerColon = SameLine
$3.BeforeDelegateDeclarationParentheses = False
$3.AfterDelegateDeclarationParameterComma = True
$3.NewParentheses = False
$3.SpacesBeforeBrackets = False
$3.inheritsSet = Mono
$3.inheritsScope = text/x-csharp
$3.scope = text/x-csharp
$3.SpacingAfterMethodDeclarationName = False
$3.SpaceAfterMethodCallName = False
$3.SpaceBeforeOpenSquareBracket = False
$0.TextStylePolicy = $4
$4.FileWidth = 120
$4.TabsToSpaces = False
$4.inheritsSet = VisualStudio
$4.inheritsScope = text/plain
$4.scope = text/plain
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{372E8E3E-29D5-4B4D-88A2-4711CD628C4E} = {E023475B-7BCC-48DC-9D39-609F6AC4BC37}
{90C99ADB-7D4B-4EB4-98C2-40BD1B14C7D2} = {E023475B-7BCC-48DC-9D39-609F6AC4BC37}
{DE40756E-57F6-4AF2-B155-55E3A88CCED8} = {E023475B-7BCC-48DC-9D39-609F6AC4BC37}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E023475B-7BCC-48DC-9D39-609F6AC4BC37}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E023475B-7BCC-48DC-9D39-609F6AC4BC37}
EndGlobalSection
EndGlobal

Просмотреть файл

@ -14,12 +14,10 @@
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"scripts": { "scripts": {
"prepare": "make build",
"vscode:prepublishOnly": "make build",
"compile": "make build", "compile": "make build",
"lint": "eslint . --ext .ts,.tsx", "lint": "make lint",
"watch": "tsc -w -p ./src/typescript", "watch": "make watch",
"test": "make tests; mocha --timeout 10000 -u tdd ./out/tests" "test": "make run-tests"
}, },
"engines": { "engines": {
"vscode": "^1.32.0", "vscode": "^1.32.0",
@ -31,10 +29,10 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/Microsoft/vscode-mono-debug.git" "url": "https://github.com/microsoft/vscode-mono-debug.git"
}, },
"bugs": { "bugs": {
"url": "https://github.com/Microsoft/vscode-mono-debug/issues" "url": "https://github.com/microsoft/vscode-mono-debug/issues"
}, },
"devDependencies": { "devDependencies": {
"@types/mocha": "^8.0.3", "@types/mocha": "^8.0.3",

Просмотреть файл

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ICSharpCode.NRefactory" version="5.5.1" targetFramework="net45" />
<package id="Mono.Cecil" version="0.10.1" targetFramework="net472" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net472" />
</packages>

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net472</TargetFramework>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<OutputPath>..\..\bin\$(Configuration)</OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="Mono.Cecil" Version="0.10.1" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft.csproj" />
<ProjectReference Include="..\..\external\debugger-libs\Mono.Debugging\Mono.Debugging.csproj" />
<ProjectReference Include="..\..\external\debugger-libs\Mono.Debugging.Soft\Mono.Debugging.Soft.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -60,7 +60,7 @@ suite('Node Debug Adapter', () => {
test('should run program to the end', () => { test('should run program to the end', () => {
const PROGRAM = Path.join(DATA_ROOT, 'simple/Program.exe'); const PROGRAM = Path.join(DATA_ROOT, 'simple/bin/Debug/simple.exe');
return Promise.all([ return Promise.all([
dc.configurationSequence(), dc.configurationSequence(),
@ -71,7 +71,7 @@ suite('Node Debug Adapter', () => {
test('should run program to the end (and not stop on Debugger.Break())', () => { test('should run program to the end (and not stop on Debugger.Break())', () => {
const PROGRAM = Path.join(DATA_ROOT, 'simple_break/Program.exe'); const PROGRAM = Path.join(DATA_ROOT, 'simple_break/bin/Debug/simple_break.exe');
return Promise.all([ return Promise.all([
dc.configurationSequence(), dc.configurationSequence(),
@ -82,7 +82,7 @@ suite('Node Debug Adapter', () => {
test('should stop on debugger statement', () => { test('should stop on debugger statement', () => {
const PROGRAM = Path.join(DATA_ROOT, 'simple_break/Program.exe'); const PROGRAM = Path.join(DATA_ROOT, 'simple_break/bin/Debug/simple_break.exe');
const DEBUGGER_LINE = 11; const DEBUGGER_LINE = 11;
return Promise.all([ return Promise.all([
@ -95,7 +95,7 @@ suite('Node Debug Adapter', () => {
suite('setBreakpoints', () => { suite('setBreakpoints', () => {
const PROGRAM = Path.join(DATA_ROOT, 'simple/Program.exe'); const PROGRAM = Path.join(DATA_ROOT, 'simple/bin/Debug/simple.exe');
const SOURCE = Path.join(DATA_ROOT, 'simple/Program.cs'); const SOURCE = Path.join(DATA_ROOT, 'simple/Program.cs');
const BREAKPOINT_LINE = 13; const BREAKPOINT_LINE = 13;
@ -106,7 +106,7 @@ suite('Node Debug Adapter', () => {
suite('output events', () => { suite('output events', () => {
const PROGRAM = Path.join(DATA_ROOT, 'output/Output.exe'); const PROGRAM = Path.join(DATA_ROOT, 'output/bin/Debug/output.exe');
test('stdout and stderr events should be complete and in correct order', () => { test('stdout and stderr events should be complete and in correct order', () => {
return Promise.all([ return Promise.all([
@ -120,7 +120,7 @@ suite('Node Debug Adapter', () => {
suite('FSharp Tests', () => { suite('FSharp Tests', () => {
const PROGRAM = Path.join(DATA_ROOT, 'fsharp/Program.exe'); const PROGRAM = Path.join(DATA_ROOT, 'fsharp/bin/Debug/fsharp.exe');
const SOURCE = Path.join(DATA_ROOT, 'fsharp/Program.fs'); const SOURCE = Path.join(DATA_ROOT, 'fsharp/Program.fs');
const BREAKPOINT_LINE = 8; const BREAKPOINT_LINE = 8;

2
testdata/fsharp/Makefile поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
Program.exe: Program.fs
fsharpc --debug:full Program.fs

17
testdata/fsharp/fsharp.fsproj поставляемый Normal file
Просмотреть файл

@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net4.7.2</TargetFramework>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
</ItemGroup>
</Project>

2
testdata/output/Makefile поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
Output.exe: Output.cs
mcs -debug Output.cs

13
testdata/output/output.csproj поставляемый Normal file
Просмотреть файл

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net4.7.2</TargetFramework>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
</ItemGroup>
</Project>

2
testdata/simple/Makefile поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
Program.exe: Program.cs
mcs -debug Program.cs

13
testdata/simple/simple.csproj поставляемый Normal file
Просмотреть файл

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net4.7.2</TargetFramework>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
</ItemGroup>
</Project>

2
testdata/simple_break/Makefile поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
Program.exe: Program.cs
mcs -debug Program.cs

13
testdata/simple_break/simple_break.csproj поставляемый Normal file
Просмотреть файл

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net4.7.2</TargetFramework>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
</ItemGroup>
</Project>