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
1 change: 1 addition & 0 deletions .meta-updater/main.mjs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { updater } from "../packages/tool-meta-updater/src/index.ts";

// oxlint-disable-next-line import/no-default-export
export default updater;
39 changes: 22 additions & 17 deletions oxlint.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,18 @@ import type { OxlintConfig } from "oxlint";
import { defineConfig } from "oxlint";

// These rules should probably be re-enabled eventually
const temporarilyDisabled = [
"eslint/no-param-reassign",
"eslint/no-shadow",
"eslint/prefer-template",
"import/no-default-export",
"typescript/no-unsafe-type-assertion",
"unicorn/no-array-reduce",
const temporarilyDisabledRules = [
"unicorn/no-array-for-each",
"unicorn/no-array-reverse",
"unicorn/no-array-sort",
];

const disabledRules = [
...temporarilyDisabled,
...temporarilyDisabledRules,
"eslint/arrow-body-style",
"eslint/capitalized-comments",
"eslint/class-methods-use-this",
"eslint/complexity",
"eslint/func-names",
"eslint/id-length",
"eslint/init-declarations",
"eslint/max-classes-per-file",
Expand All @@ -30,10 +26,10 @@ const disabledRules = [
"eslint/no-continue",
"eslint/no-eq-null",
"eslint/no-lonely-if",
"eslint/no-loop-func",
"eslint/no-magic-numbers",
"eslint/no-negated-condition",
"eslint/no-plusplus",
"eslint/no-shadow",
"eslint/no-ternary",
"eslint/no-undefined",
"eslint/no-use-before-define",
Expand Down Expand Up @@ -61,21 +57,16 @@ const disabledRules = [
"promise/prefer-await-to-callbacks",
"react-perf/jsx-no-new-function-as-prop",
"react/jsx-max-depth",
"react/no-danger",
"react/no-multi-comp",
"react/only-export-components",
"react/react-in-jsx-scope",
"react/rules-of-hooks",
"typescript/explicit-function-return-type",
"typescript/parameter-properties",
"typescript/prefer-readonly-parameter-types",
"typescript/promise-function-async",
"typescript/strict-void-return",
"unicorn/filename-case",
"unicorn/no-array-callback-reference",
"unicorn/no-array-for-each",
"unicorn/no-array-reverse",
"unicorn/no-array-sort",
"unicorn/no-lonely-if",
"unicorn/no-null",
"unicorn/no-object-as-default-parameter",
Expand Down Expand Up @@ -194,6 +185,11 @@ export default defineConfig({
},

overrides: [
{
files: ["**/*.{ts,cts,mts,tsx}"],
plugins: [...plugins, "typescript"],
},

{
files: ["**/*.js"],
rules: {
Expand All @@ -202,8 +198,17 @@ export default defineConfig({
},

{
files: ["**/*.{ts,cts,mts,tsx}"],
plugins: [...plugins, "typescript"],
files: ["**/*.ts"],
rules: {
"react/rules-of-hooks": "off",
},
},

{
files: ["**/*.test.ts"],
rules: {
"eslint/func-names": "off",
},
},

{
Expand Down
1 change: 1 addition & 0 deletions packages/app-neovim/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { activate } from "./extension";
* - Register the functions that are exposed to Neovim.
* Note that these function need to start with a capital letter to be callable from Neovim.
*/
// oxlint-disable-next-line import/no-default-export
export default function entry(plugin: NvimPlugin) {
// We make sure the cursorless-neovim extension is only loaded once,
// as otherwise we will run our first copy when loading the extension
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ReleaseNotes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ const testCases: TestCase[] = [
},
];

suite("release notes", function () {
suite("release notes", () => {
teardown(() => {
sinon.restore();
});
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ScopeTreeProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ class ScopeSupportTreeItem extends TreeItem {
getLanguageExtensionSampleFromLanguageId(languageId);
if (fileExtension != null) {
this.resourceUri = URI.parse(
"cursorless-dummy://dummy/dummy" + fileExtension,
`cursorless-dummy://dummy/dummy${fileExtension}`,
);
}
this.setUrl(languageId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export class VscodeFancyRangeHighlighter {
// A single range will be split into multiple decorations if it spans
// multiple lines, so that we can eg use dashed lines to end lines that
// are part of the same range.
function* ({ range, differentiationIndex }) {
function* generateDecorations({ range, differentiationIndex }) {
const iterable =
range.type === "line"
? generateDecorationsForLineRange(range.start, range.end)
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as vscode from "vscode";
import type { Clipboard } from "@cursorless/lib-common";

export default class VscodeClipboard implements Clipboard {
export class VscodeClipboard implements Clipboard {
async readText(): Promise<string> {
return await vscode.env.clipboard.readText();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const translators: TranslatorMap = {
},
};

export default class VscodeConfiguration implements Configuration {
export class VscodeConfiguration implements Configuration {
private notifier = new Notifier();

constructor(ide: VscodeIDE) {
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeEdit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type * as vscode from "vscode";
import type { Edit } from "@cursorless/lib-common";
import { toVscodePosition, toVscodeRange } from "@cursorless/lib-vscode-common";

export default async function vscodeEdit(
export async function vscodeEdit(
editor: vscode.TextEditor,
edits: Edit[],
): Promise<boolean> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export type ExtendedHatStyleMap = Partial<
* In VSCode, there is a hat style for every shape-color combination, filtered
* by those whose penalty is not too large.
*/
export default class VscodeEnabledHatStyleManager {
export class VscodeEnabledHatStyleManager {
hatStyleMap!: ExtendedHatStyleMap;
private notifier: Notifier<[HatStyleMap]> = new Notifier();

Expand Down
4 changes: 2 additions & 2 deletions packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import type {
FlashStyle,
} from "@cursorless/lib-common";
import { groupBy, sleep } from "@cursorless/lib-common";
import type VscodeHighlights from "./VscodeHighlights";
import type { VscodeHighlights } from "./VscodeHighlights";
import type { VscodeIDE } from "./VscodeIDE";

export default class VscodeFlashHandler {
export class VscodeFlashHandler {
constructor(
private ide: VscodeIDE,
private highlights: VscodeHighlights,
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const columnFocusCommands = {
/**
* Focus editor. Returns true if selection needs to be set again.
*/
export default async function vscodeFocusEditor(
export async function vscodeFocusEditor(
editor: VscodeTextEditor,
): Promise<void> {
const viewColumn = getViewColumn(editor.vscodeEditor);
Expand Down
4 changes: 2 additions & 2 deletions packages/app-vscode/src/ide/vscode/VscodeFold.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ export function vscodeUnfold(
async function foldOrUnfold(
ide: VscodeIDE,
editor: VscodeTextEditor,
ranges: Range[] | undefined,
rangesIn: Range[] | undefined,
command: "editor.fold" | "editor.unfold",
): Promise<void> {
ranges = ranges ?? editor.selections;
let ranges = rangesIn ?? editor.selections;

const singleLineRanges = ranges.filter((range) => range.isSingleLine);
const multiLineRanges = ranges.filter((range) => !range.isSingleLine);
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const allStyles = Object.values<VscodeStyle>(FlashStyle).concat(
* {@link VscodeFlashHandler} for rendering the decorations used for flashes, but this
* class doesn't handle the timing of the flashes.
*/
export default class VscodeHighlights {
export class VscodeHighlights {
private highlightDecorations: Record<
VscodeStyle,
VscodeHighlightDecorationTypes
Expand Down
12 changes: 6 additions & 6 deletions packages/app-vscode/src/ide/vscode/VscodeIDE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ import {
fromVscodeSelection,
} from "@cursorless/lib-vscode-common";
import { VscodeCapabilities } from "./VscodeCapabilities";
import VscodeClipboard from "./VscodeClipboard";
import VscodeConfiguration from "./VscodeConfiguration";
import { VscodeClipboard } from "./VscodeClipboard";
import { VscodeConfiguration } from "./VscodeConfiguration";
import { forwardEvent, vscodeOnDidChangeTextDocument } from "./VscodeEvents";
import VscodeFlashHandler from "./VscodeFlashHandler";
import VscodeHighlights, { HighlightStyle } from "./VscodeHighlights";
import { VscodeFlashHandler } from "./VscodeFlashHandler";
import { HighlightStyle, VscodeHighlights } from "./VscodeHighlights";
import { VscodeNotebookEditorImpl } from "./VscodeIdeNotebook";
import VscodeKeyValueStore from "./VscodeKeyValueStore";
import VscodeMessages from "./VscodeMessages";
import { VscodeKeyValueStore } from "./VscodeKeyValueStore";
import { VscodeMessages } from "./VscodeMessages";
import { vscodeRunMode } from "./VscodeRunMode";
import { vscodeShowQuickPick } from "./vscodeShowQuickPick";
import { VscodeTextDocument } from "./VscodeTextDocument";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { VERSION_KEY } from "../../ReleaseNotes";
import { DONT_SHOW_TALON_UPDATE_MESSAGE_KEY } from "../../ScopeTreeProvider";
import { PERFORMED_PR_1868_SHAPE_UPDATE_INIT_KEY } from "./hats/performPr1868ShapeUpdateInit";

export default class VscodeKeyValueStore implements KeyValueStore {
export class VscodeKeyValueStore implements KeyValueStore {
constructor(private extensionContext: ExtensionContext) {
// Mark all keys for synchronization
extensionContext.globalState.setKeysForSync([
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeMessages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { window } from "vscode";
import type { MessageId, Messages } from "@cursorless/lib-common";
import { MessageType } from "@cursorless/lib-common";

export default class VscodeMessages implements Messages {
export class VscodeMessages implements Messages {
async showMessage(
type: MessageType,
_id: MessageId,
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Selection } from "@cursorless/lib-common";
import { toVscodePositionOrRange } from "@cursorless/lib-vscode-common";
import type { VscodeTextEditor } from "./VscodeTextEditor";

export default async function vscodeOpenLink(
export async function vscodeOpenLink(
editor: VscodeTextEditor,
range: Range,
{ openAside }: OpenLinkOptions,
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
toVscodePosition,
toVscodeRange,
} from "@cursorless/lib-vscode-common";
import VscodeTextLine from "./VscodeTextLine";
import { VscodeTextLine } from "./VscodeTextLine";

export class VscodeTextDocument implements TextDocument {
get uri(): URI {
Expand Down
6 changes: 3 additions & 3 deletions packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ import {
toVscodeSelection,
} from "@cursorless/lib-vscode-common";
import { isDiffEditorOriginal } from "./isDiffEditorOriginal";
import vscodeEdit from "./VscodeEdit";
import vscodeFocusEditor from "./VscodeFocusEditor";
import { vscodeEdit } from "./VscodeEdit";
import { vscodeFocusEditor } from "./VscodeFocusEditor";
import { vscodeFold, vscodeUnfold } from "./VscodeFold";
import type { VscodeIDE } from "./VscodeIDE";
import { vscodeInsertSnippet } from "./VscodeInsertSnippets";
import vscodeOpenLink from "./VscodeOpenLink";
import { vscodeOpenLink } from "./VscodeOpenLink";
import { vscodeRevealLine } from "./VscodeRevealLine";
import { VscodeTextDocument } from "./VscodeTextDocument";
import { vscodeToggleBreakpoint } from "./VscodeToggleBreakpoint";
Expand Down
2 changes: 1 addition & 1 deletion packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { TextLine } from "@cursorless/lib-common";
import { Position, Range } from "@cursorless/lib-common";
import { fromVscodeRange } from "@cursorless/lib-vscode-common";

export default class VscodeTextLine implements TextLine {
export class VscodeTextLine implements TextLine {
constructor(private line: vscode.TextLine) {}

get lineNumber(): number {
Expand Down
10 changes: 6 additions & 4 deletions packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ import type { VscodeApi } from "@cursorless/lib-vscode-common";
import type { HatShape, VscodeHatStyleName } from "../hatStyles.types";
import { HAT_SHAPES } from "../hatStyles.types";
import { vscodeGetConfigurationString } from "../VscodeConfiguration";
import type VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager";
import type { ExtendedHatStyleMap } from "../VscodeEnabledHatStyleManager";
import type {
ExtendedHatStyleMap,
VscodeEnabledHatStyleManager,
} from "../VscodeEnabledHatStyleManager";
import type { FontMeasurements } from "./FontMeasurements";
import getHatThemeColors from "./getHatThemeColors";
import { getHatThemeColors } from "./getHatThemeColors";
import { performPr1868ShapeUpdateInit } from "./performPr1868ShapeUpdateInit";
import type { IndividualHatAdjustmentMap } from "./shapeAdjustments";
import {
Expand Down Expand Up @@ -60,7 +62,7 @@ interface SvgInfo {
* hats. The decision about which hat styles should be available is up to
* {@link VscodeEnabledHatStyles}
*/
export default class VscodeHatRenderer {
export class VscodeHatRenderer {
private decorationMap!: HatDecorationMap;
private disposables: vscode.Disposable[] = [];
private notifier: Notifier = new Notifier();
Expand Down
4 changes: 2 additions & 2 deletions packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import { Notifier } from "@cursorless/lib-common";
import type { VscodeApi } from "@cursorless/lib-vscode-common";
import { toVscodeRange } from "@cursorless/lib-vscode-common";
import type { VscodeHatStyleName } from "../hatStyles.types";
import VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager";
import { VscodeEnabledHatStyleManager } from "../VscodeEnabledHatStyleManager";
import type { VscodeIDE } from "../VscodeIDE";
import type { VscodeTextEditor } from "../VscodeTextEditor";
import type { FontMeasurements } from "./FontMeasurements";
import VscodeHatRenderer from "./VscodeHatRenderer";
import { VscodeHatRenderer } from "./VscodeHatRenderer";

export class VscodeHats implements Hats {
private enabledHatStyleManager: VscodeEnabledHatStyleManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ interface OldDecorationColorSetting {
highContrast: string;
}

export default function getHatThemeColors(colorName: HatColor) {
export function getHatThemeColors(colorName: HatColor) {
const oldStyleColorSetting = vscode.workspace
.getConfiguration("cursorless.colors")
.get<OldDecorationColorSetting>(colorName);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as assert from "node:assert/strict";
import { getReusableEditor } from "@cursorless/lib-vscode-common";
import VscodeTextLine from "./VscodeTextLine";
import { VscodeTextLine } from "./VscodeTextLine";

/**
* Each test is of the form:
Expand Down
6 changes: 4 additions & 2 deletions packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ import type {
SimpleKeyboardActionDescriptor,
SpecificKeyboardActionDescriptor,
} from "./KeyboardActionType";
import type { TargetingMode } from "./KeyboardCommandsTargeted";
import type KeyboardCommandsTargeted from "./KeyboardCommandsTargeted";
import type {
TargetingMode,
KeyboardCommandsTargeted,
} from "./KeyboardCommandsTargeted";
import type { ModalVscodeCommandDescriptor } from "./TokenTypes";

/**
Expand Down
6 changes: 3 additions & 3 deletions packages/app-vscode/src/keyboard/KeyboardCommands.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { ExtensionContext } from "vscode";
import type { VscodeApi } from "@cursorless/lib-vscode-common";
import type { StatusBarItem } from "../StatusBarItem";
import KeyboardCommandsModal from "./KeyboardCommandsModal";
import KeyboardCommandsTargeted from "./KeyboardCommandsTargeted";
import KeyboardHandler from "./KeyboardHandler";
import { KeyboardCommandsModal } from "./KeyboardCommandsModal";
import { KeyboardCommandsTargeted } from "./KeyboardCommandsTargeted";
import { KeyboardHandler } from "./KeyboardHandler";

export class KeyboardCommands {
targeted: KeyboardCommandsTargeted;
Expand Down
6 changes: 3 additions & 3 deletions packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ import grammar from "./grammar/generated/grammar";
import { getAcceptableTokenTypes } from "./grammar/getAcceptableTokenTypes";
import { KeyboardCommandHandler } from "./KeyboardCommandHandler";
import { KeyboardCommandsModalLayer } from "./KeyboardCommandsModalLayer";
import type KeyboardCommandsTargeted from "./KeyboardCommandsTargeted";
import type { KeyboardCommandsTargeted } from "./KeyboardCommandsTargeted";
import { KeyboardConfig } from "./KeyboardConfig";
import type KeyboardHandler from "./KeyboardHandler";
import type { KeyboardHandler } from "./KeyboardHandler";
import type { KeyDescriptor, TokenTypeKeyMapMap } from "./TokenTypeHelpers";

/**
* Defines a mode to use with a modal version of Cursorless keyboard.
*/
export default class KeyboardCommandsModal {
export class KeyboardCommandsModal {
/**
* This disposable is returned by {@link KeyboardHandler.pushListener}, and is
* used to relinquich control of the keyboard. If this disposable is
Expand Down
Loading
Loading