Skip to content

Commit

Permalink
feat(sort): 排序功能完善-仅支持以颜色和自定义分组视图有效
Browse files Browse the repository at this point in the history
  • Loading branch information
czfadmin committed May 12, 2024
1 parent 4d48d00 commit 64989dc
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 46 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,7 @@
"type": "string",
"default": "Warning",
"enum": [
"Off",
"Trace",
"Debug",
"Info",
Expand Down
37 changes: 25 additions & 12 deletions src/controllers/BookmarksController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,12 @@ export default class BookmarksController implements IController {
break;
}

if (!group) {
if (
!group ||
this.groupView === TreeViewGroupEnum.FILE ||
this.groupView === TreeViewGroupEnum.DEFAULT ||
this.groupView === TreeViewGroupEnum.WORKSPACE
) {
return;
}

Expand All @@ -435,24 +440,24 @@ export default class BookmarksController implements IController {
private _updateBookmarkSortedInfo(
bookmark: IBookmark,
bookmarks: IBookmark[],
idx: number,
targetIdx: number,
) {
const currentIdx = bookmark.sortedInfo[this.groupView];
if (currentIdx < idx) {
for (let i = idx; i > currentIdx; i--) {
if (currentIdx < targetIdx) {
for (let i = targetIdx; i > currentIdx; i--) {
const current = bookmarks[i];
current.updateSortedInfo(this.groupView, i - 1);
}
} else {
for (let i = idx; i < currentIdx; i++) {
for (let i = targetIdx; i < currentIdx; i++) {
const current = bookmarks[i];
current.updateSortedInfo(this.groupView, i + 1);
}
}

// 3. 更新当前书签
bookmark.updateSortedInfo(this.groupView, idx);
this._logger.info(bookmarks.map(it => it.sortedInfo[this.groupView]));
bookmark.updateSortedInfo(this.groupView, targetIdx);
this._logger.warn(bookmarks.map(it => it.sortedInfo[this.groupView]));
}
/**
* 将数据写入到`.vscode/bookmark.json`中
Expand Down Expand Up @@ -587,7 +592,8 @@ export default class BookmarksController implements IController {
);
if (fs.existsSync(storeFilePath)) {
let content = fs.readFileSync(storeFilePath, 'utf-8');
if (!content || !content.length) {

if (!content) {
content = JSON.stringify({
content: [],
bookmarks: [],
Expand All @@ -598,16 +604,23 @@ export default class BookmarksController implements IController {
groupInfo: [],
});
}

const storeContent = JSON.parse(content) as IBookmarkStoreInfo;
// const {version, updatedDate, updatedDateTimespan, ...rest} =
// storeContent;

applySnapshot(this._store, {
...storeContent,
bookmarks: storeContent.bookmarks || [],
groups: storeContent.groups || [],
groupInfo: storeContent.groupInfo || [],
} as any);

// 这时候要添加每个工作区间的文件夹中的书签和分组信息
if (firstInit) {
this._store.initStore(storeContent);
firstInit = false;
}
this._store.addGroups(storeContent.groups || []);
this._store.addBookmarks(
storeContent.content || storeContent.bookmarks || [],
);
}
}
this._needWarning = true;
Expand Down
27 changes: 17 additions & 10 deletions src/services/LoggerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,9 @@ export function registerTelemetryLogger() {
workspace.onDidChangeConfiguration(e => {
const logLevelId = `${EXTENSION_ID}.logLevel`;
if (e.affectsConfiguration(logLevelId)) {
LoggerService.logLevel =
LogLevel[
// @ts-ignore
workspace.getConfiguration(EXTENSION_ID).get('logLevel') || 'Warning'
] || LogLevel.Warning;
const levelStr =
workspace.getConfiguration(EXTENSION_ID).get('logLevel') || 'Warning';
LoggerService.logLevel = LogLevel[levelStr as keyof typeof LogLevel];
}
});

Expand All @@ -84,7 +82,7 @@ export class LoggerService {
}

info(...msg: any[]) {
if (LoggerService.logLevel > LogLevel.Info) {
if (this._disableLog(LogLevel.Info)) {
return;
}
logger.output.info(this.prefix, ...msg);
Expand All @@ -94,7 +92,7 @@ export class LoggerService {
}

log(...msg: any[]) {
if (LoggerService.logLevel > LogLevel.Info) {
if (this._disableLog(LogLevel.Info)) {
return;
}
logger.output.info(this.prefix, ...msg);
Expand All @@ -104,7 +102,7 @@ export class LoggerService {
}

warn(...msg: any[]) {
if (LoggerService.logLevel > LogLevel.Warning) {
if (this._disableLog(LogLevel.Warning)) {
return;
}
logger.output.warn(this.prefix, ...msg);
Expand All @@ -114,7 +112,7 @@ export class LoggerService {
}

trace(...msg: any[]) {
if (LoggerService.logLevel > LogLevel.Trace) {
if (this._disableLog(LogLevel.Trace)) {
return;
}
logger.output.warn(this.prefix, ...msg);
Expand All @@ -124,7 +122,7 @@ export class LoggerService {
}

debug(...msg: any[]) {
if (LoggerService.logLevel > LogLevel.Debug) {
if (this._disableLog(LogLevel.Debug)) {
return;
}
logger.output.debug(this.prefix, ...msg);
Expand All @@ -134,9 +132,18 @@ export class LoggerService {
}

error(...msg: any[]) {
if (this._disableLog(LogLevel.Error)) {
return;
}
logger.output.error(this.prefix, ...msg);
logger.telemetry.logError('error', {
info: msg,
});
}

private _disableLog(level: LogLevel): boolean {
return (
LoggerService.logLevel === LogLevel.Off || LoggerService.logLevel > level
);
}
}
39 changes: 19 additions & 20 deletions src/stores/bookmark-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,27 +223,31 @@ export const BookmarksStore = types
id: group.id,
label: group.label,
group,
bookmarks: self.bookmarks.filter(it => it.groupId === group.id),
bookmarks: sortBookmarks(
self.bookmarks.filter(it => it.groupId === group.id),
self.sortedType,
self.groupView,
),
});
} else {
_group.bookmarks.push(
...self.bookmarks.filter(it => it.groupId === group.id),
...sortBookmarks(
self.bookmarks.filter(it => it.groupId === group.id),
self.sortedType,
self.groupView,
),
);
}
}

return grouped
.sort((a, b) => a.group.sortedIndex - b.group.sortedIndex)
.map(it => {
return {
...it,
bookmarks: sortBookmarks(
it.bookmarks,
self.sortedType,
self.groupView,
),
};
});
logger.warn(
'get bookmarksGroupedByCustom',
grouped.sort((a, b) => a.group.sortedIndex - b.group.sortedIndex),
);

return grouped.sort(
(a, b) => a.group.sortedIndex - b.group.sortedIndex,
);
},
get totalCount() {
return self.bookmarks.length;
Expand Down Expand Up @@ -396,7 +400,7 @@ export const BookmarksStore = types
});
}

logger.info('add bookmark', _bookmark);
logger.debug('add bookmark', _bookmark);
return _bookmark;
}

Expand Down Expand Up @@ -451,11 +455,6 @@ export const BookmarksStore = types
}

function initStore(data: any) {
const {sortedType, viewType, groupView} = data;
self.groupView = groupView;
self.sortedType = sortedType;
self.viewType = viewType;

// 注册对应的上下文
registerExtensionCustomContextByKey(
'code.viewAsTree',
Expand Down
4 changes: 0 additions & 4 deletions src/stores/bookmark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -249,10 +249,6 @@ export const BookmarkProcessorModel: ISnapshotProcessor<
> = types.snapshotProcessor(Bookmark, {
preProcessor(snapshot: SnapshotIn<IBookmark>): SnapshotOut<IBookmark> {
return snapshot as SnapshotOut<IBookmark>;
// return {
// ...snapshot,
// color: snapshot.color || snapshot.customColor?.name || 'default',
// } as SnapshotOut<IBookmark>;
},
postProcessor(snapshot: SnapshotOut<IBookmark>, node) {
return snapshot;
Expand Down

0 comments on commit 64989dc

Please sign in to comment.