Enable @typescript-eslint/explicit-member-accessibility on /src (#9785)

* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier
This commit is contained in:
Michael Telatynski 2022-12-16 12:29:59 +00:00 committed by GitHub
parent 51554399fb
commit f1e8e7f140
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
396 changed files with 1110 additions and 1098 deletions

View file

@ -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;
}
}

View file

@ -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,

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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, "");

View file

@ -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"

View file

@ -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"

View file

@ -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;
}
}