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
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dist
node_modules
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"jsxSingleQuote": true,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 120,
"proseWrap": "never",
"endOfLine": "lf"
}
38 changes: 19 additions & 19 deletions web-lite/file-provider/http-file.service.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import { Autowired, Injectable } from '@opensumi/di';
import { URI, Uri, AppConfig } from '@opensumi/ide-core-browser';

import {
ICodeAPIProvider,
ICodePlatform,
IRepositoryModel,
CodePlatform,
TreeEntry,
} from '../code-api/common/types';
import { ICodeAPIProvider, ICodePlatform, IRepositoryModel, CodePlatform, TreeEntry } from '../code-api/common/types';
import { DEFAULT_URL, parseUri } from '../utils';

import { AbstractHttpFileService } from './browser-fs-provider';

const PathSeperator = '/';
const PathSeparator = '/';
const HEAD = 'HEAD';

export type HttpTreeList = { path: string; content?: string; children: HttpTreeList }[];
Expand Down Expand Up @@ -73,10 +67,13 @@ export class HttpFileService extends AbstractHttpFileService {
}

// TODO 不使用 recursive 递归接口直接查询
const tree = await this.codeAPI.asPlatform(CodePlatform.github).getTree(this._repo, '', 1).catch(err => {
console.error(err);
return [];
})
const tree = await this.codeAPI
.asPlatform(CodePlatform.github)
.getTree(this._repo, '', 1)
.catch((err) => {
console.error(err);
return [];
});

tree.forEach((item) => {
map[item.path] = item;
Expand All @@ -91,11 +88,14 @@ export class HttpFileService extends AbstractHttpFileService {
const result: HttpTreeList = [];
// helper 的对象
const accumulator = { __result__: result };
const filelist = Object.keys(files).map((path) => ({ path, content: files[path] }));
const filelist = Object.keys(files).map((path) => ({
path,
content: files[path],
}));
filelist.forEach((file) => {
const path = file.path!;
// 初始的 accumulator 为 level
path.split(PathSeperator).reduce((acc, cur) => {
path.split(PathSeparator).reduce((acc, cur) => {
// 每次返回 path 对应的 desc 作为下一个 path 的 parent
// 不存在 path 对应的 desc 则创建一个新的挂载到 acc 上
if (!acc[cur]) {
Expand Down Expand Up @@ -132,20 +132,20 @@ export class HttpFileService extends AbstractHttpFileService {
async readDir(uri: Uri) {
const _uri = new URI(uri);
const treeNode = this.getTargetTreeNode(_uri);
const relativePath = this.getRelativePath(_uri)
const relativePath = this.getRelativePath(_uri);
return (treeNode?.children || []).map((item) => ({
...item,
path: relativePath + PathSeperator + item.path,
path: relativePath + PathSeparator + item.path,
}));
}

private getTargetTreeNode(uri: URI) {
const relativePath = this.getRelativePath(uri)
const relativePath = this.getRelativePath(uri);
if (!relativePath) {
// 根目录
return { children: this.fileTree, path: relativePath };
}
const paths = relativePath.split(PathSeperator);
const paths = relativePath.split(PathSeparator);
let targetNode: { path: string; content?: string; children: HttpTreeList } | undefined;
let nodeList = this.fileTree;
paths.forEach((path) => {
Expand All @@ -158,7 +158,7 @@ export class HttpFileService extends AbstractHttpFileService {
async updateFile(uri: Uri, content: string, options: { encoding?: string; newUri?: Uri }): Promise<void> {
const _uri = new URI(uri);
// TODO: sync update to remote logic
const relativePath = this.getRelativePath(_uri)
const relativePath = this.getRelativePath(_uri);
if (options.newUri) {
delete this.fileMap[relativePath];
// TODO: 只更新对应节点,可以有更好的性能
Expand Down
3 changes: 1 addition & 2 deletions web-lite/file-system-provider/fs-provider/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import { IEditorDocumentModelContentProvider } from '@opensumi/ide-editor/lib/br
import { Emitter } from '@opensumi/ide-monaco/lib/common/types';

@Injectable()
export class WalkThroughSnipppetDocumentProvider implements IEditorDocumentModelContentProvider {

export class WalkThroughSnippetDocumentProvider implements IEditorDocumentModelContentProvider {
private value = '';

handlesScheme(scheme: string) {
Expand Down
16 changes: 6 additions & 10 deletions web-lite/file-system-provider/index.contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,16 @@ import {
StaticResourceService,
} from '@opensumi/ide-static-resource/lib/browser/static.definition';

import { WalkThroughSnipppetDocumentProvider } from './fs-provider';
import { WalkThroughSnippetDocumentProvider } from './fs-provider';

@Domain(StaticResourceContribution, BrowserEditorContribution)
export class FsProviderContribution
implements StaticResourceContribution, BrowserEditorContribution
{
export class FsProviderContribution implements StaticResourceContribution, BrowserEditorContribution {
@Autowired(WalkThroughSnippetDocumentProvider)
private readonly walkThroughSnippetDocumentProvider: WalkThroughSnippetDocumentProvider;

@Autowired(WalkThroughSnipppetDocumentProvider)
private readonly walkThroughSnipppetDocumentProvider: WalkThroughSnipppetDocumentProvider;

registerStaticResolver(service: StaticResourceService): void {
}
registerStaticResolver(service: StaticResourceService): void {}

registerEditorDocumentModelContentProvider(registry: IEditorDocumentModelContentRegistry) {
registry.registerEditorDocumentModelContentProvider(this.walkThroughSnipppetDocumentProvider);
registry.registerEditorDocumentModelContentProvider(this.walkThroughSnippetDocumentProvider);
}
}
8 changes: 4 additions & 4 deletions web-lite/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ import { BrowserCommonServer } from './overrides/browser-common-server';
import { MockFileSearch } from './overrides/mock-file-search';
import { MockLogServiceForClient } from './overrides/mock-logger';
import { MockCredentialService } from './overrides/mock-credential.service';
import { FsProviderContribution } from './file-system-provider/index.contribution'
import { WalkThroughSnipppetDocumentProvider } from './file-system-provider/fs-provider';
import { FsProviderContribution } from './file-system-provider/index.contribution';
import { WalkThroughSnippetDocumentProvider } from './file-system-provider/fs-provider';
import { MenuOverrideContribution } from './overrides/menu.contribution';

@Injectable()
export class WebLiteModule extends BrowserModule {
providers: Provider[] = [
{
token: WalkThroughSnipppetDocumentProvider,
useClass: WalkThroughSnipppetDocumentProvider,
token: WalkThroughSnippetDocumentProvider,
useClass: WalkThroughSnippetDocumentProvider,
},
{
token: CommonServerPath,
Expand Down
4 changes: 2 additions & 2 deletions webview-host/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export interface IWebviewChannel {
onKeydown?: (event: KeyboardEvent) => void;
}

function addslashes(str) {
function addSlashes(str) {
// eslint-disable-next-line no-control-regex
return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
Expand All @@ -78,7 +78,7 @@ export function getVsCodeApiScript(state) {
const targetOrigin = '*';
let acquired = false;

let state = ${state ? `JSON.parse("${addslashes(JSON.stringify(state))}")` : undefined};
let state = ${state ? `JSON.parse("${addSlashes(JSON.stringify(state))}")` : undefined};

return () => {
if (acquired) {
Expand Down