You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vscode-api-cn.js/classes/vscode.Uri.html

785 lines
48 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Uri | VS Code API 中文文档</title>
<meta name="description" content="VS Code API 是一系列你可以在 Visual Studio Code 扩展中调用的 JavaScript API。这个站点列出了扩展开发者可以使用的所有 vscode api 中文文档。">
<meta property="og:site_name" content="Vscode Api 中文文档">
<meta property="og:type" content="docs">
<meta property="og:url" content="https://vscode-api-cn.js.org/index.html">
<meta property="article:tag" content="vscode">
<meta property="article:tag" content="vscode api">
<meta property="article:tag" content="vscode api 中文文档">
<meta property="article:tag" content="vscode api 文档">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="https://code.visualstudio.com/favicon.ico" sizes="128x128">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7962287588031867" crossorigin="anonymous"></script>
<script type="text/javascript">
(function (c, l, a, r, i, t, y) {
c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) };
t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i;
y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "g1cbw4nxoq");
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-T4TRRS1LB1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-T4TRRS1LB1');
</script>
<style>
.github-corner svg {
z-index: 1;
}
.github-corner:hover .octo-arm {
animation:octocat-wave 560ms ease-in-out
}
@keyframes octocat-wave {
0%,100%{transform:rotate(0)}
20%,60%{transform:rotate(-25deg)}
40%,80%{transform:rotate(10deg)}
}
@media (max-width:500px) {
.github-corner:hover
.octo-arm{animation:none}
.github-corner .octo-arm{
animation:octocat-wave 560ms ease-in-out
}
}
.container-main {
padding-bottom: 50px;
}
</style>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">VS Code API 中文文档</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules.html">VS Code API 中文文档</a>
</li>
<li>
<a href="../modules/vscode.html">vscode</a>
</li>
<li>
<a href="vscode.Uri.html">Uri</a>
</li>
</ul>
<h1>Class Uri</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>A universal resource identifier representing either a file on disk
or another resource, like untitled resources.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>层级</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Uri</span>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>索引</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods7</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="vscode.Uri.html#parse" class="tsd-kind-icon">parse</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="vscode.Uri.html#file" class="tsd-kind-icon">file</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="vscode.Uri.html#joinPath" class="tsd-kind-icon">join<wbr>Path</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="vscode.Uri.html#from" class="tsd-kind-icon">from</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="vscode.Uri.html#with" class="tsd-kind-icon">with</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="vscode.Uri.html#toString" class="tsd-kind-icon">to<wbr>String</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="vscode.Uri.html#toJSON" class="tsd-kind-icon">toJSON</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-private tsd-is-private-protected">
<h3>Constructors1</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-private"><a href="vscode.Uri.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Properties6</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#scheme" class="tsd-kind-icon">scheme</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#authority" class="tsd-kind-icon">authority</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#path" class="tsd-kind-icon">path</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#query" class="tsd-kind-icon">query</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#fragment" class="tsd-kind-icon">fragment</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="vscode.Uri.html#fsPath" class="tsd-kind-icon">fs<wbr>Path</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods7</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a name="parse" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> parse</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
<li class="tsd-signature tsd-kind-icon">parse<span class="tsd-signature-symbol">(</span>value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, strict<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1281">vscode.d.ts:1281</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create an URI from a string, e.g. <code>http://www.msft.com/some/path</code>,
<code>file:///usr/home</code>, or <code>scheme:with/path</code>.</p>
</div>
<p><em>Note</em> that for a while uris without a <code>scheme</code> were accepted. That is not correct
as all uris should have a scheme. To avoid breakage of existing code the optional
<code>strict</code>-argument has been added. We <em>strongly</em> advise to use it, e.g. <code>Uri.parse(&#39;my:uri&#39;, true)</code></p>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="vscode.Uri.html#toString">Uri.toString</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>value: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The string value of an Uri.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> strict: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>Throw an error when <code>value</code> is empty or when no <code>scheme</code> can be parsed.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
<p>A new Uri instance.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a name="file" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> file</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
<li class="tsd-signature tsd-kind-icon">file<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1306">vscode.d.ts:1306</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create an URI from a file system path. The <a href="vscode.Uri.html#scheme">scheme</a>
will be <code>file</code>.</p>
</div>
<p>The <em>difference</em> between <a href="vscode.Uri.html#parse">Uri.parse</a> and <a href="vscode.Uri.html#file">Uri.file</a> is that the latter treats the argument
as path, not as stringified-uri. E.g. <code>Uri.file(path)</code> is <em>not</em> the same as
<code>Uri.parse(&#39;file://&#39; + path)</code> because the path might contain characters that are
interpreted (# and ?). See the following sample:</p>
<pre><code class="language-ts"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">good</span><span style="color: #000000"> = </span><span style="color: #0070C1">URI</span><span style="color: #000000">.</span><span style="color: #795E26">file</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;/coding/c#/project1&#039;</span><span style="color: #000000">);</span>
<span style="color: #001080">good</span><span style="color: #000000">.</span><span style="color: #001080">scheme</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;file&#039;</span><span style="color: #000000">;</span>
<span style="color: #001080">good</span><span style="color: #000000">.</span><span style="color: #001080">path</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;/coding/c#/project1&#039;</span><span style="color: #000000">;</span>
<span style="color: #001080">good</span><span style="color: #000000">.</span><span style="color: #001080">fragment</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;&#039;</span><span style="color: #000000">;</span>
<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">bad</span><span style="color: #000000"> = </span><span style="color: #0070C1">URI</span><span style="color: #000000">.</span><span style="color: #795E26">parse</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;file://&#039;</span><span style="color: #000000"> + </span><span style="color: #A31515">&#039;/coding/c#/project1&#039;</span><span style="color: #000000">);</span>
<span style="color: #001080">bad</span><span style="color: #000000">.</span><span style="color: #001080">scheme</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;file&#039;</span><span style="color: #000000">;</span>
<span style="color: #001080">bad</span><span style="color: #000000">.</span><span style="color: #001080">path</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;/coding/c&#039;</span><span style="color: #000000">; </span><span style="color: #008000">// path is now broken</span>
<span style="color: #001080">bad</span><span style="color: #000000">.</span><span style="color: #001080">fragment</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;/project1&#039;</span><span style="color: #000000">;</span>
</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>A file system or UNC path.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
<p>A new Uri instance.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a name="joinPath" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> join<wbr>Path</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
<li class="tsd-signature tsd-kind-icon">join<wbr>Path<span class="tsd-signature-symbol">(</span>base<span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a>, <span class="tsd-signature-symbol">...</span>pathSegments<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1328">vscode.d.ts:1328</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create a new uri which path is the result of joining
the path of the base uri with the provided path segments.</p>
</div>
<ul>
<li>Note 1: <code>joinPath</code> only affects the path component
and all other components (scheme, authority, query, and fragment) are
left as they are.</li>
<li>Note 2: The base uri must have a path; an error is thrown otherwise.</li>
</ul>
<p>The path segments are normalized in the following ways:</p>
<ul>
<li>sequences of path separators (<code>/</code> or <code>\</code>) are replaced with a single separator</li>
<li>for <code>file</code>-uris on windows, the backslash-character (<code>\</code>) is considered a path-separator</li>
<li>the <code>..</code>-segment denotes the parent segment, the <code>.</code> denotes the current segment</li>
<li>paths have a root which always remains, for instance on windows drive-letters are roots
so that is true: <code>joinPath(Uri.file(&#39;file:///c:/root&#39;), &#39;../../other&#39;).fsPath === &#39;c:/other&#39;</code></li>
</ul>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>base: <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h5>
<div class="tsd-comment tsd-typography">
<p>An uri. Must have a path.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>pathSegments: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
<div class="tsd-comment tsd-typography">
<p>One more more path fragments</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
<p>A new uri which path is joined with the given fragments</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a name="from" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> from</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static">
<li class="tsd-signature tsd-kind-icon">from<span class="tsd-signature-symbol">(</span>components<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>scheme<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1337">vscode.d.ts:1337</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create an URI from its component parts</p>
</div>
<dl class="tsd-comment-tags">
<dt>see</dt>
<dd><p><a href="vscode.Uri.html#toString">Uri.toString</a></p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>components: <span class="tsd-signature-symbol">{ </span>scheme<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></h5>
<div class="tsd-comment tsd-typography">
<p>The component parts of an Uri.</p>
</div>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>scheme<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
<p>A new Uri instance.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="with" class="tsd-anchor"></a>
<h3>with</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">with<span class="tsd-signature-symbol">(</span>change<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>scheme<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1407">vscode.d.ts:1407</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Derive a new Uri from this Uri.</p>
</div>
<pre><code class="language-ts"><span style="color: #0000FF">let</span><span style="color: #000000"> </span><span style="color: #001080">file</span><span style="color: #000000"> = </span><span style="color: #001080">Uri</span><span style="color: #000000">.</span><span style="color: #795E26">parse</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;before:some/file/path&#039;</span><span style="color: #000000">);</span>
<span style="color: #0000FF">let</span><span style="color: #000000"> </span><span style="color: #001080">other</span><span style="color: #000000"> = </span><span style="color: #001080">file</span><span style="color: #000000">.</span><span style="color: #795E26">with</span><span style="color: #000000">({ </span><span style="color: #001080">scheme:</span><span style="color: #000000"> </span><span style="color: #A31515">&#039;after&#039;</span><span style="color: #000000"> });</span>
<span style="color: #001080">assert</span><span style="color: #000000">.</span><span style="color: #795E26">ok</span><span style="color: #000000">(</span><span style="color: #001080">other</span><span style="color: #000000">.</span><span style="color: #795E26">toString</span><span style="color: #000000">() === </span><span style="color: #A31515">&#039;after:some/file/path&#039;</span><span style="color: #000000">);</span>
</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>change: <span class="tsd-signature-symbol">{ </span>scheme<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></h5>
<div class="tsd-comment tsd-typography">
<p>An object that describes a change to this Uri. To unset components use <code>null</code> or
the empty string.</p>
</div>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> scheme<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> authority<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> path<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5><span class="tsd-flag ts-flagOptional">Optional</span> fragment<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span></h5>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
<p>A new Uri that reflects the given change. Will return <code>this</code> Uri if the change
is not changing anything.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="toString" class="tsd-anchor"></a>
<h3>to<wbr>String</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">to<wbr>String<span class="tsd-signature-symbol">(</span>skipEncoding<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1426">vscode.d.ts:1426</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns a string representation of this Uri. The representation and normalization
of a URI depends on the scheme.</p>
</div>
<ul>
<li>The resulting string can be safely used with <a href="vscode.Uri.html#parse">Uri.parse</a>.</li>
<li>The resulting string shall <em>not</em> be used for display purposes.</li>
</ul>
<p><em>Note</em> that the implementation will encode <em>aggressive</em> which often leads to unexpected,
but not incorrect, results. For instance, colons are encoded to <code>%3A</code> which might be unexpected
in file-uri. Also <code>&amp;</code> and <code>=</code> will be encoded which might be unexpected for http-uris. For stability
reasons this cannot be changed anymore. If you suffer from too aggressive encoding you should use
the <code>skipEncoding</code>-argument: <code>uri.toString(true)</code>.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> skipEncoding: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>Do not percentage-encode the result, defaults to <code>false</code>. Note that
the <code>#</code> and <code>?</code> characters occurring in the path will always be encoded.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
<p>A string representation of this Uri.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="toJSON" class="tsd-anchor"></a>
<h3>toJSON</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">toJSON<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1433">vscode.d.ts:1433</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns a JSON representation of this Uri.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
<p>An object.</p>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-private tsd-is-private-protected">
<h2>Constructors1</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-private">
<a name="constructor" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">new <wbr>Uri<span class="tsd-signature-symbol">(</span>scheme<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, authority<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, query<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, fragment<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1342">vscode.d.ts:1342</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Use the <code>file</code> and <code>parse</code> factory functions to create new <code>Uri</code> objects.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>scheme: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>authority: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>path: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>query: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>fragment: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="vscode.Uri.html" class="tsd-signature-type" data-tsd-kind="Class">Uri</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties6</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="scheme" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> scheme</h3>
<div class="tsd-signature tsd-kind-icon">scheme<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1348">vscode.d.ts:1348</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Scheme is the <code>http</code> part of <code>http://www.msft.com/some/path?query#fragment</code>.
The part before the first colon.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="authority" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> authority</h3>
<div class="tsd-signature tsd-kind-icon">authority<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1354">vscode.d.ts:1354</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Authority is the <code>www.msft.com</code> part of <code>http://www.msft.com/some/path?query#fragment</code>.
The part between the first double slashes and the next slash.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="path" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> path</h3>
<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1359">vscode.d.ts:1359</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Path is the <code>/some/path</code> part of <code>http://www.msft.com/some/path?query#fragment</code>.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="query" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> query</h3>
<div class="tsd-signature tsd-kind-icon">query<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1364">vscode.d.ts:1364</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Query is the <code>query</code> part of <code>http://www.msft.com/some/path?query#fragment</code>.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="fragment" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> fragment</h3>
<div class="tsd-signature tsd-kind-icon">fragment<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1369">vscode.d.ts:1369</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Fragment is the <code>fragment</code> part of <code>http://www.msft.com/some/path?query#fragment</code>.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="fsPath" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagReadonly">Readonly</span> fs<wbr>Path</h3>
<div class="tsd-signature tsd-kind-icon">fs<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/vscode-cn/vscode-api-cn/blob/201e4fb/vscode.d.ts#L1391">vscode.d.ts:1391</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The string representing the corresponding file system path of this Uri.</p>
</div>
<p>Will handle UNC paths and normalize windows drive letters to lower-case. Also
uses the platform specific path separator.</p>
<ul>
<li>Will <em>not</em> validate the path for invalid characters and semantics.</li>
<li>Will <em>not</em> look at the scheme of this Uri.</li>
<li>The resulting string shall <em>not</em> be used for display purposes but
for disk operations, like <code>readFile</code> et al.</li>
</ul>
<p>The <em>difference</em> to the <a href="vscode.Uri.html#path"><code>path</code></a>-property is the use of the platform specific
path separator and the handling of UNC paths. The sample below outlines the difference:</p>
<pre><code class="language-ts"><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">u</span><span style="color: #000000"> = </span><span style="color: #0070C1">URI</span><span style="color: #000000">.</span><span style="color: #795E26">parse</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;file://server/c$/folder/file.txt&#039;</span><span style="color: #000000">)</span>
<span style="color: #001080">u</span><span style="color: #000000">.</span><span style="color: #001080">authority</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;server&#039;</span>
<span style="color: #001080">u</span><span style="color: #000000">.</span><span style="color: #001080">path</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;/shares/c$/file.txt&#039;</span>
<span style="color: #001080">u</span><span style="color: #000000">.</span><span style="color: #001080">fsPath</span><span style="color: #000000"> === </span><span style="color: #A31515">&#039;</span><span style="color: #EE0000">\\</span><span style="color: #A31515">server</span><span style="color: #EE0000">\c</span><span style="color: #A31515">$</span><span style="color: #EE0000">\f</span><span style="color: #A31515">older</span><span style="color: #EE0000">\f</span><span style="color: #A31515">ile.txt&#039;</span>
</code></pre>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../modules.html">Exports</a>
</li>
<li class="current tsd-kind-namespace">
<a href="../modules/vscode.html">vscode</a>
<ul>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.authentication.html">authentication</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.commands.html">commands</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.comments.html">comments</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.debug.html">debug</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.env.html">env</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.extensions.html">extensions</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.languages.html">languages</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.notebooks.html">notebooks</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.scm.html">scm</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.tasks.html">tasks</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.tests.html">tests</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.window.html">window</a>
</li>
<li class=" tsd-kind-namespace tsd-parent-kind-namespace">
<a href="../modules/vscode.workspace.html">workspace</a>
</li>
</ul>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<div style="width: 200px">
<script type="text/javascript" id="clstr_globe" src="//clustrmaps.com/globe.js?d=cMnk-gSDNcAzNMMm67U8rWRaHnjUc0Xb0giSGndepK4"></script>
</div>
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class tsd-parent-kind-namespace">
<a href="vscode.Uri.html" class="tsd-kind-icon">Uri</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a href="vscode.Uri.html#parse" class="tsd-kind-icon">parse</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a href="vscode.Uri.html#file" class="tsd-kind-icon">file</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a href="vscode.Uri.html#joinPath" class="tsd-kind-icon">join<wbr>Path</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-static">
<a href="vscode.Uri.html#from" class="tsd-kind-icon">from</a>
</li>
<li class=" tsd-kind-constructor tsd-parent-kind-class tsd-is-private">
<a href="vscode.Uri.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#scheme" class="tsd-kind-icon">scheme</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#authority" class="tsd-kind-icon">authority</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#path" class="tsd-kind-icon">path</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#query" class="tsd-kind-icon">query</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#fragment" class="tsd-kind-icon">fragment</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="vscode.Uri.html#fsPath" class="tsd-kind-icon">fs<wbr>Path</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="vscode.Uri.html#with" class="tsd-kind-icon">with</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="vscode.Uri.html#toString" class="tsd-kind-icon">to<wbr>String</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="vscode.Uri.html#toJSON" class="tsd-kind-icon">toJSON</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>图例</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p><a href="https://liiked.github.io/VS-Code-Extension-Doc-ZH/" target="_blank">VS Code 插件开发中文文档</a> | <a href="https://jeasonstudio.gitbooks.io/vscode-cn-doc/content/" target="_blank">VS Code 中文文档</a> | <a href="https://code.visualstudio.com/docs" target="_blank">VS Code 官网文档</a> | <a href="https://marketplace.visualstudio.com/" target="_blank">VS Code 扩展市场</a></p>
<p>Generated by <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<a href="https://github.com/youngjuning/vscode-api-cn" target="_blank" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: fixed; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
</body>
</html>