Enable @typescript-eslint/explicit-member-accessibility
on /src (#9785)
* Enable `@typescript-eslint/explicit-member-accessibility` on /src * Prettier
This commit is contained in:
parent
51554399fb
commit
f1e8e7f140
396 changed files with 1110 additions and 1098 deletions
|
@ -36,8 +36,8 @@ export interface IAutocompleteOptions {
|
|||
}
|
||||
|
||||
export default abstract class AutocompleteProvider {
|
||||
commandRegex: RegExp;
|
||||
forcedCommandRegex: RegExp;
|
||||
public commandRegex: RegExp;
|
||||
public forcedCommandRegex: RegExp;
|
||||
|
||||
protected renderingType: TimelineRenderingType = TimelineRenderingType.Room;
|
||||
|
||||
|
@ -59,7 +59,7 @@ export default abstract class AutocompleteProvider {
|
|||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
public destroy() {
|
||||
// stub
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ export default abstract class AutocompleteProvider {
|
|||
* @param {boolean} force True if the user is forcing completion
|
||||
* @return {object} { command, range } where both objects fields are null if no match
|
||||
*/
|
||||
getCurrentCommand(query: string, selection: ISelectionRange, force = false) {
|
||||
public getCurrentCommand(query: string, selection: ISelectionRange, force = false) {
|
||||
let commandRegex = this.commandRegex;
|
||||
|
||||
if (force && this.shouldForceComplete()) {
|
||||
|
@ -106,19 +106,19 @@ export default abstract class AutocompleteProvider {
|
|||
};
|
||||
}
|
||||
|
||||
abstract getCompletions(
|
||||
public abstract getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force: boolean,
|
||||
limit: number,
|
||||
): Promise<ICompletion[]>;
|
||||
|
||||
abstract getName(): string;
|
||||
public abstract getName(): string;
|
||||
|
||||
abstract renderCompletions(completions: React.ReactNode[]): React.ReactNode | null;
|
||||
public abstract renderCompletions(completions: React.ReactNode[]): React.ReactNode | null;
|
||||
|
||||
// Whether we should provide completions even if triggered forcefully, without a sigil.
|
||||
shouldForceComplete(): boolean {
|
||||
public shouldForceComplete(): boolean {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,23 +59,23 @@ export interface IProviderCompletions {
|
|||
}
|
||||
|
||||
export default class Autocompleter {
|
||||
room: Room;
|
||||
providers: AutocompleteProvider[];
|
||||
public room: Room;
|
||||
public providers: AutocompleteProvider[];
|
||||
|
||||
constructor(room: Room, renderingType: TimelineRenderingType = TimelineRenderingType.Room) {
|
||||
public constructor(room: Room, renderingType: TimelineRenderingType = TimelineRenderingType.Room) {
|
||||
this.room = room;
|
||||
this.providers = PROVIDERS.map((Prov) => {
|
||||
return new Prov(room, renderingType);
|
||||
});
|
||||
}
|
||||
|
||||
destroy() {
|
||||
public destroy() {
|
||||
this.providers.forEach((p) => {
|
||||
p.destroy();
|
||||
});
|
||||
}
|
||||
|
||||
async getCompletions(
|
||||
public async getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force = false,
|
||||
|
|
|
@ -31,9 +31,9 @@ import { TimelineRenderingType } from "../contexts/RoomContext";
|
|||
const COMMAND_RE = /(^\/\w*)(?: .*)?/g;
|
||||
|
||||
export default class CommandProvider extends AutocompleteProvider {
|
||||
matcher: QueryMatcher<Command>;
|
||||
public matcher: QueryMatcher<Command>;
|
||||
|
||||
constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
public constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
super({ commandRegex: COMMAND_RE, renderingType });
|
||||
this.matcher = new QueryMatcher(Commands, {
|
||||
keys: ["command", "args", "description"],
|
||||
|
@ -42,7 +42,7 @@ export default class CommandProvider extends AutocompleteProvider {
|
|||
});
|
||||
}
|
||||
|
||||
async getCompletions(
|
||||
public async getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force?: boolean,
|
||||
|
@ -100,11 +100,11 @@ export default class CommandProvider extends AutocompleteProvider {
|
|||
});
|
||||
}
|
||||
|
||||
getName() {
|
||||
public getName() {
|
||||
return "*️⃣ " + _t("Commands");
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill"
|
||||
|
|
|
@ -72,11 +72,11 @@ function colonsTrimmed(str: string): string {
|
|||
}
|
||||
|
||||
export default class EmojiProvider extends AutocompleteProvider {
|
||||
matcher: QueryMatcher<ISortedEmoji>;
|
||||
nameMatcher: QueryMatcher<ISortedEmoji>;
|
||||
public matcher: QueryMatcher<ISortedEmoji>;
|
||||
public nameMatcher: QueryMatcher<ISortedEmoji>;
|
||||
private readonly recentlyUsed: IEmoji[];
|
||||
|
||||
constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
public constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
super({ commandRegex: EMOJI_REGEX, renderingType });
|
||||
this.matcher = new QueryMatcher<ISortedEmoji>(SORTED_EMOJI, {
|
||||
keys: [],
|
||||
|
@ -93,7 +93,7 @@ export default class EmojiProvider extends AutocompleteProvider {
|
|||
this.recentlyUsed = Array.from(new Set(recent.get().map(getEmojiFromUnicode).filter(Boolean)));
|
||||
}
|
||||
|
||||
async getCompletions(
|
||||
public async getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force?: boolean,
|
||||
|
@ -154,11 +154,11 @@ export default class EmojiProvider extends AutocompleteProvider {
|
|||
return [];
|
||||
}
|
||||
|
||||
getName() {
|
||||
public getName() {
|
||||
return "😃 " + _t("Emoji");
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill"
|
||||
|
|
|
@ -28,11 +28,16 @@ import { TimelineRenderingType } from "../contexts/RoomContext";
|
|||
const AT_ROOM_REGEX = /@\S*/g;
|
||||
|
||||
export default class NotifProvider extends AutocompleteProvider {
|
||||
constructor(public room: Room, renderingType?: TimelineRenderingType) {
|
||||
public constructor(public room: Room, renderingType?: TimelineRenderingType) {
|
||||
super({ commandRegex: AT_ROOM_REGEX, renderingType });
|
||||
}
|
||||
|
||||
async getCompletions(query: string, selection: ISelectionRange, force = false, limit = -1): Promise<ICompletion[]> {
|
||||
public async getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force = false,
|
||||
limit = -1,
|
||||
): Promise<ICompletion[]> {
|
||||
const client = MatrixClientPeg.get();
|
||||
|
||||
if (!this.room.currentState.mayTriggerNotifOfType("room", client.credentials.userId)) return [];
|
||||
|
@ -60,11 +65,11 @@ export default class NotifProvider extends AutocompleteProvider {
|
|||
return [];
|
||||
}
|
||||
|
||||
getName() {
|
||||
public getName() {
|
||||
return "❗️ " + _t("Room Notification");
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate"
|
||||
|
|
|
@ -49,7 +49,7 @@ export default class QueryMatcher<T extends {}> {
|
|||
private _options: IOptions<T>;
|
||||
private _items: Map<string, { object: T; keyWeight: number }[]>;
|
||||
|
||||
constructor(objects: T[], options: IOptions<T> = { keys: [] }) {
|
||||
public constructor(objects: T[], options: IOptions<T> = { keys: [] }) {
|
||||
this._options = options;
|
||||
|
||||
this.setObjects(objects);
|
||||
|
@ -61,7 +61,7 @@ export default class QueryMatcher<T extends {}> {
|
|||
}
|
||||
}
|
||||
|
||||
setObjects(objects: T[]) {
|
||||
public setObjects(objects: T[]) {
|
||||
this._items = new Map();
|
||||
|
||||
for (const object of objects) {
|
||||
|
@ -96,7 +96,7 @@ export default class QueryMatcher<T extends {}> {
|
|||
}
|
||||
}
|
||||
|
||||
match(query: string, limit = -1): T[] {
|
||||
public match(query: string, limit = -1): T[] {
|
||||
query = this.processQuery(query);
|
||||
if (this._options.shouldMatchWordsOnly) {
|
||||
query = query.replace(/[^\w]/g, "");
|
||||
|
|
|
@ -48,7 +48,7 @@ function matcherObject(room: Room, displayedAlias: string, matchName = "") {
|
|||
export default class RoomProvider extends AutocompleteProvider {
|
||||
protected matcher: QueryMatcher<Room>;
|
||||
|
||||
constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
public constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
super({ commandRegex: ROOM_REGEX, renderingType });
|
||||
this.matcher = new QueryMatcher([], {
|
||||
keys: ["displayedAlias", "matchName"],
|
||||
|
@ -62,7 +62,12 @@ export default class RoomProvider extends AutocompleteProvider {
|
|||
return cli.getVisibleRooms().filter((r) => !r.isSpaceRoom());
|
||||
}
|
||||
|
||||
async getCompletions(query: string, selection: ISelectionRange, force = false, limit = -1): Promise<ICompletion[]> {
|
||||
public async getCompletions(
|
||||
query: string,
|
||||
selection: ISelectionRange,
|
||||
force = false,
|
||||
limit = -1,
|
||||
): Promise<ICompletion[]> {
|
||||
let completions = [];
|
||||
const { command, range } = this.getCurrentCommand(query, selection, force);
|
||||
if (command) {
|
||||
|
@ -118,11 +123,11 @@ export default class RoomProvider extends AutocompleteProvider {
|
|||
return completions;
|
||||
}
|
||||
|
||||
getName() {
|
||||
public getName() {
|
||||
return _t("Rooms");
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate"
|
||||
|
|
|
@ -27,11 +27,11 @@ export default class SpaceProvider extends RoomProvider {
|
|||
.filter((r) => r.isSpaceRoom());
|
||||
}
|
||||
|
||||
getName() {
|
||||
public getName() {
|
||||
return _t("Spaces");
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate"
|
||||
|
|
|
@ -43,11 +43,11 @@ const USER_REGEX = /\B@\S*/g;
|
|||
const FORCED_USER_REGEX = /[^/,:; \t\n]\S*/g;
|
||||
|
||||
export default class UserProvider extends AutocompleteProvider {
|
||||
matcher: QueryMatcher<RoomMember>;
|
||||
users: RoomMember[];
|
||||
room: Room;
|
||||
public matcher: QueryMatcher<RoomMember>;
|
||||
public users: RoomMember[];
|
||||
public room: Room;
|
||||
|
||||
constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
public constructor(room: Room, renderingType?: TimelineRenderingType) {
|
||||
super({
|
||||
commandRegex: USER_REGEX,
|
||||
forcedCommandRegex: FORCED_USER_REGEX,
|
||||
|
@ -64,7 +64,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
MatrixClientPeg.get().on(RoomStateEvent.Update, this.onRoomStateUpdate);
|
||||
}
|
||||
|
||||
destroy() {
|
||||
public destroy() {
|
||||
if (MatrixClientPeg.get()) {
|
||||
MatrixClientPeg.get().removeListener(RoomEvent.Timeline, this.onRoomTimeline);
|
||||
MatrixClientPeg.get().removeListener(RoomStateEvent.Update, this.onRoomStateUpdate);
|
||||
|
@ -101,7 +101,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
this.users = null;
|
||||
};
|
||||
|
||||
async getCompletions(
|
||||
public async getCompletions(
|
||||
rawQuery: string,
|
||||
selection: ISelectionRange,
|
||||
force = false,
|
||||
|
@ -146,7 +146,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
return completions;
|
||||
}
|
||||
|
||||
getName(): string {
|
||||
public getName(): string {
|
||||
return _t("Users");
|
||||
}
|
||||
|
||||
|
@ -167,7 +167,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
this.matcher.setObjects(this.users);
|
||||
}
|
||||
|
||||
onUserSpoke(user: RoomMember) {
|
||||
public onUserSpoke(user: RoomMember) {
|
||||
if (!this.users) return;
|
||||
if (!user) return;
|
||||
if (user.userId === MatrixClientPeg.get().credentials.userId) return;
|
||||
|
@ -182,7 +182,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
this.matcher.setObjects(this.users);
|
||||
}
|
||||
|
||||
renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
public renderCompletions(completions: React.ReactNode[]): React.ReactNode {
|
||||
return (
|
||||
<div
|
||||
className="mx_Autocomplete_Completion_container_pill"
|
||||
|
@ -194,7 +194,7 @@ export default class UserProvider extends AutocompleteProvider {
|
|||
);
|
||||
}
|
||||
|
||||
shouldForceComplete(): boolean {
|
||||
public shouldForceComplete(): boolean {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue