Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions eng/scripts/PublicApi/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Mark Shipped Tool
========

This tool should be run after every supported release that has API changes. It will
merge the collection of PublicApi.Shipped.txt files with the PublicApi.Unshipped.txt
versions. This will take into account `*REMOVED*` elements when updating the files.

Usage:

``` cmd
mark-shipped.cmd
```
2 changes: 2 additions & 0 deletions eng/scripts/PublicApi/mark-shipped.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
powershell -noprofile -executionPolicy RemoteSigned -file "%~dp0\mark-shipped.ps1"
51 changes: 51 additions & 0 deletions eng/scripts/PublicApi/mark-shipped.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
[CmdletBinding(PositionalBinding=$false)]
param ()

Set-StrictMode -version 2.0
$ErrorActionPreference = "Stop"

function MarkShipped([string]$dir) {
$shippedFilePath = Join-Path $dir "PublicAPI.Shipped.txt"
$shipped = Get-Content $shippedFilePath
if ($null -eq $shipped) {
$shipped = @()
}

$unshippedFilePath = Join-Path $dir "PublicAPI.Unshipped.txt"
$unshipped = Get-Content $unshippedFilePath
$removed = @()
$removedPrefix = "*REMOVED*";
Write-Host "Processing $dir"

foreach ($item in $unshipped) {
if ($item.Length -gt 0) {
if ($item.StartsWith($removedPrefix)) {
$item = $item.Substring($removedPrefix.Length)
$removed += $item
}
else {
$shipped += $item
}
}
}

$shipped | Sort-Object | ?{ -not $removed.Contains($_) } | Out-File $shippedFilePath -Encoding Ascii
"" | Out-File $unshippedFilePath -Encoding Ascii
}

try {
Push-Location (Join-Path $PSScriptRoot "..\..\..\")

foreach ($file in Get-ChildItem -re -in "PublicApi.Shipped.txt") {
$dir = Split-Path -parent $file
MarkShipped $dir
}
}
catch {
Write-Host $_
Write-Host $_.Exception
exit 1
}
finally {
Pop-Location
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnap
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.Uri.get -> System.Uri!
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.Version.get -> int
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.VirtualDocuments.get -> System.Collections.Generic.IReadOnlyList<Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentSnapshot!>!
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor.ApplyChangesAsync<TJsonToken>(TJsonToken message, string! containedLanguageName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>>!
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager.HasInterceptor(string! messageName, string! contentType) -> bool
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager.ProcessInterceptorsAsync(string! methodName, Newtonsoft.Json.Linq.JToken! message, string! contentType, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Newtonsoft.Json.Linq.JToken?>!
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.MessageInterceptor.ApplyChangesAsync(Newtonsoft.Json.Linq.JToken! message, string! containedLanguageName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionResult>!
Expand All @@ -30,6 +31,7 @@ Microsoft.VisualStudio.LanguageServer.ContainedLanguage.FormattingOptionsProvide
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.LSPDocument() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.TryGetVirtualDocument<TVirtualDocument>(out TVirtualDocument? virtualDocument) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.TryGetVirtualDocument<TVirtualDocument>(System.Uri! virtualDocumentUri, out TVirtualDocument? virtualDocument) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentChangeKind
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentChangeKind.Added = 0 -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentChangeKind
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentChangeKind.Removed = 1 -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentChangeKind
Expand All @@ -38,7 +40,20 @@ Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentManager
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentManager.LSPDocumentManager() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.LSPDocumentSnapshot() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.TryGetAllVirtualDocuments<TVirtualDocument>(out TVirtualDocument![]? virtualDocuments) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.TryGetVirtualDocument<TVirtualDocument>(out TVirtualDocument? virtualDocument) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.CanHandle(string! methodName) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.GenericInterceptionMiddleLayer(Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager! interceptorManager, string! contentType) -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.HandleNotificationAsync(string! methodName, TJsonToken methodParam, System.Func<TJsonToken, System.Threading.Tasks.Task!>! sendNotification) -> System.Threading.Tasks.Task!
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.HandleRequestAsync(string! methodName, TJsonToken methodParam, System.Func<TJsonToken, System.Threading.Tasks.Task<TJsonToken?>!>! sendRequest) -> System.Threading.Tasks.Task<TJsonToken?>!
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.ChangedDocumentUri.get -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.GenericInterceptionResult() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.GenericInterceptionResult(TJsonToken? newToken, bool changedDocumentUri) -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.UpdatedToken.get -> TJsonToken?
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor.GenericMessageInterceptor() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionMiddleLayer
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionMiddleLayer.CanHandle(string! methodName) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionMiddleLayer.HandleNotificationAsync(string! methodName, Newtonsoft.Json.Linq.JToken! methodParam, System.Func<Newtonsoft.Json.Linq.JToken!, System.Threading.Tasks.Task!>! sendNotification) -> System.Threading.Tasks.Task!
Expand Down Expand Up @@ -67,5 +82,10 @@ override Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocument
override Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentBase<T>.TextBuffer.get -> Microsoft.VisualStudio.Text.ITextBuffer!
override Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentBase<T>.Update(System.Collections.Generic.IReadOnlyList<Microsoft.VisualStudio.Text.ITextChange!>! changes, int hostDocumentVersion, object? state) -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentSnapshot!
override Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentBase<T>.Uri.get -> System.Uri!
static readonly Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.NoChange -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>
static readonly Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionResult.NoChange -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptionResult
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.Dispose() -> void
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.Dispose() -> void
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.UpdateVirtualDocument<TVirtualDocument>(TVirtualDocument! virtualDocument, System.Collections.Generic.IReadOnlyList<Microsoft.VisualStudio.Text.ITextChange!>! changes, int hostDocumentVersion, object? state) -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot!
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentManager.RefreshVirtualDocuments() -> void
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager.ProcessGenericInterceptorsAsync<TJsonToken>(string! methodName, TJsonToken message, string! contentType, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<TJsonToken?>!
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentFactory.TryCreateMultipleFor(Microsoft.VisualStudio.Text.ITextBuffer! hostDocumentBuffer, out Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocument![]? virtualDocuments) -> bool
Original file line number Diff line number Diff line change
@@ -1,21 +1,2 @@
#nullable enable
abstract Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor.ApplyChangesAsync<TJsonToken>(TJsonToken message, string! containedLanguageName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>>!
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.TryGetVirtualDocument<TVirtualDocument>(System.Uri! virtualDocumentUri, out TVirtualDocument? virtualDocument) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot.TryGetAllVirtualDocuments<TVirtualDocument>(out TVirtualDocument![]? virtualDocuments) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.CanHandle(string! methodName) -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.GenericInterceptionMiddleLayer(Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager! interceptorManager, string! contentType) -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.HandleNotificationAsync(string! methodName, TJsonToken methodParam, System.Func<TJsonToken, System.Threading.Tasks.Task!>! sendNotification) -> System.Threading.Tasks.Task!
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionMiddleLayer<TJsonToken>.HandleRequestAsync(string! methodName, TJsonToken methodParam, System.Func<TJsonToken, System.Threading.Tasks.Task<TJsonToken?>!>! sendRequest) -> System.Threading.Tasks.Task<TJsonToken?>!
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.ChangedDocumentUri.get -> bool
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.GenericInterceptionResult() -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.GenericInterceptionResult(TJsonToken? newToken, bool changedDocumentUri) -> void
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.UpdatedToken.get -> TJsonToken?
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor
Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericMessageInterceptor.GenericMessageInterceptor() -> void
static readonly Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>.NoChange -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.GenericInterceptionResult<TJsonToken>
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocument.UpdateVirtualDocument<TVirtualDocument>(TVirtualDocument! virtualDocument, System.Collections.Generic.IReadOnlyList<Microsoft.VisualStudio.Text.ITextChange!>! changes, int hostDocumentVersion, object? state) -> Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentSnapshot!
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.LSPDocumentManager.RefreshVirtualDocuments() -> void
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.MessageInterception.InterceptorManager.ProcessGenericInterceptorsAsync<TJsonToken>(string! methodName, TJsonToken message, string! contentType, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<TJsonToken?>!
virtual Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocumentFactory.TryCreateMultipleFor(Microsoft.VisualStudio.Text.ITextBuffer! hostDocumentBuffer, out Microsoft.VisualStudio.LanguageServer.ContainedLanguage.VirtualDocument![]? virtualDocuments) -> bool