Skip to content

Commit

Permalink
chore: no hack
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricbet committed Dec 19, 2024
1 parent 28bd308 commit d0d2327
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 63 deletions.
26 changes: 0 additions & 26 deletions src/vs/base/browser/settings.ts

This file was deleted.

15 changes: 7 additions & 8 deletions src/vs/base/common/worker/simpleWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -570,14 +570,13 @@ export class SimpleWorkerServer implements IWorkerServer {
}

const url = FileAccess.asBrowserUri(`${moduleId}.js` as AppResourcePath).toString(true);
console.log("🚀 ~ SimpleWorkerServer ~ initialize ~ url:", url)
// return import(`${url}`).then((module: { create: IRequestHandlerFactory }) => {
// this._requestHandler = module.create(this);

// if (!this._requestHandler) {
// throw new Error(`No RequestHandler!`);
// }
// });
return import(`${url}`).then((module: { create: IRequestHandlerFactory }) => {
this._requestHandler = module.create(this);

if (!this._requestHandler) {
throw new Error(`No RequestHandler!`);
}
});
}
}

Expand Down
14 changes: 5 additions & 9 deletions src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import { IDimension } from '../../../common/core/dimension.js';
import { PositionAffinity } from '../../../common/model.js';
import { IPosition, Position } from '../../../common/core/position.js';
import { IViewModel } from '../../../common/viewModel.js';
import { overflowWidgetsSettings } from '../../../../base/browser/settings.js';

/**
* This view part is responsible for rendering the content widgets, which are
Expand Down Expand Up @@ -307,9 +306,6 @@ class Widget {

private _layoutBoxInViewport(anchor: AnchorCoordinate, width: number, height: number, ctx: RenderingContext): IBoxLayoutResult {
// Our visible box is split horizontally by the current line => 2 boxes
// 这里获取 domNode 的 clientHeight 可能为 0,会导致下面计算 contentWidget 定位时整体向下偏移了一行
// 由于获取的是缓存的 height,且 domNode 渲染时机暂时不好修改,所以如果高度为0的话,在这里重新获取一次高度
const contentHeight = height === 0 ? this.domNode.domNode.clientHeight : height;

// a) the box above the line
const aboveLineTop = anchor.top;
Expand All @@ -319,10 +315,10 @@ class Widget {
const underLineTop = anchor.top + anchor.height;
const heightAvailableUnderLine = ctx.viewportHeight - underLineTop;

const aboveTop = aboveLineTop - contentHeight;
const fitsAbove = (heightAvailableAboveLine >= contentHeight);
const aboveTop = aboveLineTop - height;
const fitsAbove = (heightAvailableAboveLine >= height);
const belowTop = underLineTop;
const fitsBelow = (heightAvailableUnderLine >= contentHeight);
const fitsBelow = (heightAvailableUnderLine >= height);

// And its left
let left = anchor.left;
Expand Down Expand Up @@ -378,8 +374,8 @@ class Widget {
const [left, absoluteAboveLeft] = this._layoutHorizontalSegmentInPage(windowSize, domNodePosition, anchor.left - ctx.scrollLeft + this._contentLeft, width);

// Leave some clearance to the top/bottom
const TOP_PADDING = overflowWidgetsSettings.topPadding;
const BOTTOM_PADDING = overflowWidgetsSettings.bottomPadding;
const TOP_PADDING = 22;
const BOTTOM_PADDING = 22;

const fitsAbove = (absoluteAboveTop >= TOP_PADDING);
const fitsBelow = (absoluteBelowTop + height <= windowSize.height - BOTTOM_PADDING);
Expand Down
2 changes: 1 addition & 1 deletion src/vs/editor/browser/viewParts/viewLines/viewLine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ class RenderedViewLine implements IRenderedViewLine {
if (!this.domNode) {
return 0;
}
if (this._cachedWidth <= 0) {
if (this._cachedWidth === -1) {
this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;
context?.markDidDomLayout();
}
Expand Down
6 changes: 3 additions & 3 deletions src/vs/editor/common/languages/modesRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ export class EditorModesRegistry {

private readonly _languages: ILanguageExtensionPoint[];

private readonly _onDidChangeLanguages = new Emitter<ILanguageExtensionPoint>();
public readonly onDidChangeLanguages: Event<ILanguageExtensionPoint> = this._onDidChangeLanguages.event;
private readonly _onDidChangeLanguages = new Emitter<void>();
public readonly onDidChangeLanguages: Event<void> = this._onDidChangeLanguages.event;

constructor() {
this._languages = [];
}

public registerLanguage(def: ILanguageExtensionPoint): IDisposable {
this._languages.push(def);
this._onDidChangeLanguages.fire(def);
this._onDidChangeLanguages.fire(undefined);
return {
dispose: () => {
for (let i = 0, len = this._languages.length; i < len; i++) {
Expand Down
3 changes: 1 addition & 2 deletions src/vs/editor/common/services/editorSimpleWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -559,8 +559,7 @@ export class EditorSimpleWorker extends BaseEditorSimpleWorker {
};

const url = FileAccess.asBrowserUri(`${moduleId}.js` as AppResourcePath).toString(true);
console.log("🚀 ~ EditorSimpleWorker ~ returnnewPromise ~ url:", url)
// import(`${url}`).then(onModuleCallback).catch(reject);
import(`${url}`).then(onModuleCallback).catch(reject);
});
}

Expand Down
37 changes: 24 additions & 13 deletions src/vs/editor/common/services/languagesRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ export class LanguagesRegistry extends Disposable {

if (useModesRegistry) {
this._initializeFromRegistry();
this._register(ModesRegistry.onDidChangeLanguages((lang) => {
this._registerLanguage(lang);
this._register(ModesRegistry.onDidChangeLanguages((m) => {
this._initializeFromRegistry();
}));
}
}
Expand All @@ -105,7 +105,7 @@ export class LanguagesRegistry extends Disposable {

public setDynamicLanguages(def: ILanguageExtensionPoint[]): void {
this._dynamicLanguages = def;
this._registerLanguages(this._dynamicLanguages);
this._initializeFromRegistry();
}

private _initializeFromRegistry(): void {
Expand All @@ -115,24 +115,45 @@ export class LanguagesRegistry extends Disposable {
this._lowercaseNameMap = {};

clearPlatformLanguageAssociations();
const desc = (<ILanguageExtensionPoint[]>[]).concat(ModesRegistry.getLanguages()).concat(this._dynamicLanguages);
this._registerLanguages(desc);
}

registerLanguage(desc: ILanguageExtensionPoint): IDisposable {
return ModesRegistry.registerLanguage(desc);
}

_registerLanguages(desc: ILanguageExtensionPoint[]): void {

for (const d of desc) {
this._registerLanguage(d);
}

// Rebuild fast path maps
this._mimeTypesMap = {};
this._nameMap = {};
this._lowercaseNameMap = {};
Object.keys(this._languages).forEach((langId) => {
const language = this._languages[langId];
if (language.name) {
this._nameMap[language.name] = language.identifier;
}
language.aliases.forEach((alias) => {
this._lowercaseNameMap[alias.toLowerCase()] = language.identifier;
});
language.mimetypes.forEach((mimetype) => {
this._mimeTypesMap[mimetype] = language.identifier;
});
});

Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds());

this._onDidChange.fire();
}

private _registerLanguage(lang: ILanguageExtensionPoint): void {
const langId = lang.id;

let resolvedLanguage: IResolvedLanguage;
if (hasOwnProperty.call(this._languages, langId)) {
resolvedLanguage = this._languages[langId];
Expand All @@ -152,16 +173,6 @@ export class LanguagesRegistry extends Disposable {
}

this._mergeLanguage(resolvedLanguage, lang);
// Rebuild fast path maps
if (resolvedLanguage.name) {
this._nameMap[resolvedLanguage.name] = resolvedLanguage.identifier;
}
resolvedLanguage.aliases.forEach((alias) => {
this._lowercaseNameMap[alias.toLowerCase()] = resolvedLanguage.identifier;
});
resolvedLanguage.mimetypes.forEach((mimetype) => {
this._mimeTypesMap[mimetype] = resolvedLanguage.identifier;
});
}

private _mergeLanguage(resolvedLanguage: IResolvedLanguage, lang: ILanguageExtensionPoint): void {
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/api/common/extHostTreeViews.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ class ExtHostTreeView<T> extends Disposable {
result.message = true;
}
return result;
}, 200);
}, 200, true);
this._register(onDidChangeData(({ message, elements }) => {
if (elements.length) {
this.refreshQueue = this.refreshQueue.then(() => {
Expand Down

0 comments on commit d0d2327

Please sign in to comment.