提交 3816ecfe 编写于 作者: J Johannes Rieken

IOpenerService#open accepts URI and URL

上级 9106843d
...@@ -140,13 +140,16 @@ export class OpenerService implements IOpenerService { ...@@ -140,13 +140,16 @@ export class OpenerService implements IOpenerService {
this._externalOpener = externalOpener; this._externalOpener = externalOpener;
} }
async open(resource: URI, options?: OpenOptions): Promise<boolean> { async open(target: URI | URL, options?: OpenOptions): Promise<boolean> {
const resource = URI.isUri(target) ? target : URI.from(target);
// no scheme ?!? // no scheme ?!?
if (!resource.scheme) { if (!resource.scheme) {
return Promise.resolve(false); return Promise.resolve(false);
} }
//todo@joh adopt validator
// check with contributed validators // check with contributed validators
for (const validator of this._validators.toArray()) { for (const validator of this._validators.toArray()) {
if (!(await validator.shouldOpen(resource))) { if (!(await validator.shouldOpen(resource))) {
...@@ -156,7 +159,7 @@ export class OpenerService implements IOpenerService { ...@@ -156,7 +159,7 @@ export class OpenerService implements IOpenerService {
// check with contributed openers // check with contributed openers
for (const opener of this._openers.toArray()) { for (const opener of this._openers.toArray()) {
const handled = await opener.open(resource, options); const handled = await opener.open(target, options);
if (handled) { if (handled) {
return true; return true;
} }
...@@ -164,7 +167,7 @@ export class OpenerService implements IOpenerService { ...@@ -164,7 +167,7 @@ export class OpenerService implements IOpenerService {
// use default openers // use default openers
for (const opener of [this._openerAsExternal, this._openerAsCommand, this._openerAsEditor]) { for (const opener of [this._openerAsExternal, this._openerAsCommand, this._openerAsEditor]) {
if (await opener.open(resource, options)) { if (await opener.open(target, options)) {
break; break;
} }
} }
......
...@@ -82,8 +82,7 @@ export interface IOpenerService { ...@@ -82,8 +82,7 @@ export interface IOpenerService {
* @param resource A resource * @param resource A resource
* @return A promise that resolves when the opening is done. * @return A promise that resolves when the opening is done.
*/ */
open(resource: URI, options?: OpenInternalOptions): Promise<boolean>; open(resource: URI | URL, options?: OpenInternalOptions | OpenExternalOptions): Promise<boolean>;
open(resource: URI, options?: OpenExternalOptions): Promise<boolean>;
/** /**
* Resolve a resource to its external form. * Resolve a resource to its external form.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册