Skip to content

Commit f7e2a8d

Browse files
authored
Merge pull request #12 from aliyun/fix/windows-path
fix: fixed windows compatibility issues
2 parents 977451c + d099f52 commit f7e2a8d

File tree

13 files changed

+169
-87
lines changed

13 files changed

+169
-87
lines changed

media/src/components/APIPage/TrySDK/TrySDK.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const TrySDK: React.FC<TrySDKProps> = (props) => {
9090
height={800}
9191
options={{
9292
readOnly: true,
93-
tabCompletion: true,
93+
tabCompletion: "on",
9494
}}
9595
// theme='vs-dark'
9696
language={getEditorLanguage(languageTab)}

media/src/components/common/MonacoEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export const MonacoEditor: React.FC<MonacoEditorProps> = (props) => {
4949
height={height}
5050
options={{
5151
readOnly: readOnly,
52-
tabCompletion: true,
52+
tabCompletion: "on",
5353
minimap: {
5454
enabled: false,
5555
},

media/src/components/main.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from "react";
22
import { API as APIPage } from "./APIPage/API";
33
import { BaseClass as StructDocument } from "./APIPage/APIDocument/BaseClass";
4-
import { getVSCode } from "../utils/utils";
4+
import { getSpecInfoFromName, getVSCode } from "../utils/utils";
55
import { parseAPIMetaDescription } from "../utils/parseAPIMetaDescription";
66
import { ApiErrorCode } from "./APIPage/APIDocument/ApiErrorCode";
77
import { PontUIService } from "../service/UIService";
@@ -37,7 +37,7 @@ export const App: React.FC<AppProps> = (props) => {
3737
const [appMeta, setAppMeta] = React.useState(props.routerMeta);
3838
const { pageType, schemaType, specName, modName, name, spec: metaSpec, remoteSpec } = appMeta || {};
3939

40-
const [popcode, version] = specName?.split("::") || ["", ""];
40+
const {product:popcode,version} = getSpecInfoFromName(specName || "");
4141

4242
const [itemMeta, setItemMeta] = React.useState(metaSpec);
4343
const [defs, setDefs] = React.useState({});

media/src/utils/utils.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,26 @@ export function useCurrentSpec() {
3131
currentSpec,
3232
};
3333
}
34+
export type SpecInfo = {
35+
product: string;
36+
version: string;
37+
};
38+
export const getSpecInfoFromName = (name: string): SpecInfo => {
39+
if (name.includes("::")) {
40+
return {
41+
product: name.split("::")[0],
42+
version: name.split("::")[1],
43+
};
44+
}
45+
if (name.includes("__")) {
46+
return {
47+
product: name.split("__")[0],
48+
version: name.split("__")[1],
49+
};
50+
}
51+
return {
52+
product: "Ecs",
53+
version: "2014-05-26",
54+
};
55+
};
3456

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,10 @@
238238
"moment": "^2.24.0",
239239
"ncc": "^0.3.6",
240240
"needle": "^2.5.0",
241-
"pontx-manager": "^0.3.83",
242-
"pontx-meta-fetch-plugin": "^0.3.83",
243-
"pontx-spec": "^0.3.83",
244-
"pontx-spec-diff": "^0.3.83",
241+
"pontx-manager": "0.3.83-beta.0",
242+
"pontx-meta-fetch-plugin": "0.3.83",
243+
"pontx-spec": "0.3.83",
244+
"pontx-spec-diff": "0.3.83",
245245
"qs": "^6.9.4",
246246
"querystring": "0.2.0",
247247
"styled-components": "^6.1.1",

src/Service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { request } from "./openApiService/request/request";
1111
import fs from "fs";
1212
import fsx from "fs/promises";
1313
import os from "os";
14+
import fetch from "node-fetch";
1415

1516
export class AlicloudAPIService {
1617
pontManager: PontManager;
@@ -142,7 +143,7 @@ export class AlicloudAPIService {
142143

143144
async requestEndpoints(product: string) {
144145
const resStr = await fetch(
145-
`https://pre-api.aliyun.com/meta/v1/products/${product}/endpoints.json?language=zh-CN`,
146+
`https://api.aliyun.com/meta/v1/products/${product}/endpoints.json?language=zh-CN`,
146147
{},
147148
).then((res) => res.text());
148149
const res = JSON.parse(resStr);

src/commands.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { PontManager } from "pontx-manager";
22
import * as _ from "lodash";
33
import * as vscode from "vscode";
4-
import { findAlicloudAPIConfig, findInterface, plugins, showProgress, viewMetaFile, VSCodeLogger, wait } from "./utils";
4+
import { findAlicloudAPIConfig, findInterface, getSpecInfoFromName, plugins, showProgress, viewMetaFile, VSCodeLogger, wait } from "./utils";
55
import { AlicloudAPIWebview } from "./webview";
66
import { alicloudAPIMessageService } from "./Service";
77
import { PontSpec } from "pontx-spec";
@@ -103,10 +103,11 @@ export class AlicloudApiCommands {
103103

104104
Promise.resolve(service.pontManager.innerManagerConfig.plugins.generate?.instance).then(
105105
async (generatePlugin) => {
106+
const {product, version} = getSpecInfoFromName(specName || "");
106107
const snippets = await codeSampleProvider({
107108
language: vscode.window.activeTextEditor?.document.languageId || "typescript",
108-
product: specName?.split("::")[0],
109-
version: specName?.split("::")[1],
109+
product: product,
110+
version: version,
110111
apiName: apiName,
111112
simplify: true,
112113
});

src/explorer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { PontAPI, Mod, ObjectMap, PontJsonSchema, PontSpec, WithoutModsName } fr
44
import * as vscode from "vscode";
55
import { MetaType, PontSpecWithMods } from "./changes/utils";
66
import { alicloudAPIMessageService } from "./Service";
7-
import { findAlicloudAPIConfig, plugins, VSCodeLogger } from "./utils";
7+
import { findAlicloudAPIConfig, getSpecInfoFromName, plugins, VSCodeLogger } from "./utils";
88
import { AlicloudApiCommands } from "./commands";
99
import { getProductRequestInstance } from "./productExplorer";
1010
import { Product } from "./types";
@@ -258,13 +258,13 @@ export class AlicloudApiExplorer implements vscode.TreeDataProvider<PontChangeTr
258258
const productExplorer = getProductRequestInstance();
259259

260260
return this.pontManager.localPontSpecs.map((spec) => {
261-
const [specName, version] = spec.name.split("::");
261+
const {product, version} = getSpecInfoFromName(spec.name || "")
262262

263263
return {
264264
specName: spec.name,
265265
contextValue: "Spec",
266266
resourceUri: vscode.Uri.parse(`pontx-manager://spec/${spec.name}`),
267-
label: `${this.getCNNameOfProduct(productExplorer.products, specName)} v${version}`,
267+
label: `${this.getCNNameOfProduct(productExplorer.products, product)} v${version}`,
268268
collapsibleState: vscode.TreeItemCollapsibleState.Collapsed,
269269
};
270270
});
@@ -337,13 +337,13 @@ export class AlicloudApiExplorer implements vscode.TreeDataProvider<PontChangeTr
337337

338338
async subscribeProduct(product: string, version: string) {
339339
const pontxConfig = await findAlicloudAPIConfig(this.context);
340-
if (pontxConfig.origins?.filter((item) => item.name === `${product}::${version}`)?.length) {
340+
if (pontxConfig.origins?.filter((item) => getSpecInfoFromName(item.name || "").product === product && getSpecInfoFromName(item.name || "").version === version)?.length) {
341341
vscode.window.showInformationMessage("该产品及其版本号已订阅,您可以使用 cmd + ctrl + p 来搜索该产品下的API。");
342342
} else {
343343
pontxConfig.origins = [
344344
...(pontxConfig.origins || []),
345345
{
346-
name: `${product}::${version}`,
346+
name: `${product}__${version}`,
347347
url: `https://api.aliyun.com/meta/v1/products/${product}/versions/${version}/api-docs.json`,
348348
},
349349
];

src/plugins/generate.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { createPontxGeneratePlugin, SnippetsProvider, PontxGeneratorPlugin, GetF
33
import { PontSpec } from "pontx-spec";
44
import { InnerOriginConfig, PontManager } from "pontx-manager";
55
import { getRequiredParamsValue } from "../utils";
6+
import fetch from "node-fetch";
67

78
const mySnippetsProvider: SnippetsProvider = (info) => {
89
return [];

src/provider/autoCompletion.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as vscode from "vscode";
22
import { alicloudAPIMessageService } from "../Service";
33
import { AlicloudApiCommands } from "../commands";
44
import _ from "lodash";
5-
import { fileSel } from "../utils";
5+
import { fileSel, getSpecInfoFromName } from "../utils";
66
import { codeSampleProvider } from "../plugins/generate";
77

88
class CompletionItemProvider {
@@ -69,7 +69,7 @@ class CompletionItemProvider {
6969
token: vscode.CancellationToken,
7070
): vscode.ProviderResult<vscode.CompletionItem> {
7171
const language = vscode.window.activeTextEditor?.document.languageId;
72-
const [product, versionAPI] = item?.detail?.split("::");
72+
const {product, version:versionAPI} = getSpecInfoFromName(item?.detail);
7373
const [version, apiName] = versionAPI?.split("/");
7474
let asyncFetchedCode = "";
7575
if (product && apiName && version) {

src/provider/autofix.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @description: Quick fix need to be used with a Linter
33
*/
44
import * as vscode from "vscode";
5-
import { containsAnySubstring, fileSel } from "../utils";
5+
import { containsAnySubstring, fileSel, getSpecInfoFromName } from "../utils";
66
import { getDepsByLanguage } from "../common/generateImport";
77
import { alicloudAPIMessageService } from "../Service";
88

@@ -23,7 +23,7 @@ class CodeActionProvider {
2323
const service = alicloudAPIMessageService;
2424
const products = service.pontManager.localPontSpecs
2525
.map((pontSpec) => {
26-
return pontSpec?.name?.split("::")[0];
26+
return getSpecInfoFromName(pontSpec?.name)[0];
2727
})
2828

2929
if (getDepsByLanguage(errorText, item.range)?.includes(errorText) || containsAnySubstring(errorText, products)) {

0 commit comments

Comments
 (0)