Skip to content

Commit 26f839e

Browse files
committed
Add better language indication as well as more supported keywords
1 parent 0f1df80 commit 26f839e

File tree

4 files changed

+38
-24
lines changed

4 files changed

+38
-24
lines changed

src/api/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,6 +1270,7 @@ export namespace RestResponsesRaw {
12701270
content: string,
12711271
error: string,
12721272
files: Array<string>,
1273+
language: string,
12731274
stats: {
12741275
memory: string,
12751276
time_compilation: number,

src/commands/prefixed/tools/code.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default class CodeCommand extends BaseCommand<CommandArgs> {
4343
async run(context: Command.Context, args: CommandArgs) {
4444
const language = getCodeLanguage(args.code.language || args.language);
4545
if (!language) {
46-
return editOrReply(context, 'Give me a valid language!');
46+
return editOrReply(context, `Give me a valid language! (One of ${Formatter.Commands.ToolsCode.languagesText})`);
4747
}
4848
return Formatter.Commands.ToolsCode.createMessage(context, {
4949
code: args.code.text,

src/constants.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -72,37 +72,37 @@ export enum CodeLanguages {
7272
export const CodeLanguagesToName = Object.freeze({
7373
[CodeLanguages.ADA]: ['ada'],
7474
[CodeLanguages.ASSEMBLY]: ['assembly', 'asm', 'nasm'],
75-
[CodeLanguages.BASH]: ['bash'],
75+
[CodeLanguages.BASH]: ['bash', 'sh', 'zsh'],
7676
[CodeLanguages.BRAINFUCK]: ['brainfuck', 'bf'],
77-
[CodeLanguages.C]: ['c(gcc)', 'c'],
77+
[CodeLanguages.C]: ['c', 'c(gcc)', 'h'],
7878
[CodeLanguages.C_CLANG]: ['c(clang)'],
79-
[CodeLanguages.C_OBJECTIVE]: ['objective-c', 'oc', 'obj-c'],
80-
[CodeLanguages.C_PLUS_PLUS]: ['c++(gcc)', 'c++', 'cpp'],
79+
[CodeLanguages.C_OBJECTIVE]: ['objectivec', 'mm', 'objc', 'obj-c', 'obj-c++', 'objective-c++', 'objective-c', 'oc'],
80+
[CodeLanguages.C_PLUS_PLUS]: ['c++', 'cpp', 'c++(gcc)', 'h++', 'hpp', 'cxx', 'hxx', 'cc', 'hh'],
8181
[CodeLanguages.C_PLUS_PLUS_CLANG]: ['c++(clang)'],
8282
[CodeLanguages.C_PLUS_PLUS_VC_PLUS_PLUS]: ['c++(vc++)'],
83-
[CodeLanguages.C_SHARP]: ['c#'],
83+
[CodeLanguages.C_SHARP]: ['c#', 'cs', 'csharp'],
8484
[CodeLanguages.C_VC]: ['c(vc)'],
85-
[CodeLanguages.CLOJURE]: ['clojure'],
85+
[CodeLanguages.CLOJURE]: ['clojure', 'clj'],
8686
[CodeLanguages.D]: ['d'],
8787
[CodeLanguages.DART]: ['dart'],
8888
[CodeLanguages.ELIXIR]: ['elixir', 'ex'],
89-
[CodeLanguages.ERLANG]: ['erlang'],
90-
[CodeLanguages.F_SHARP]: ['f#'],
91-
[CodeLanguages.FORTRAN]: ['fortran', 'fort'],
92-
[CodeLanguages.GO]: ['go'],
93-
[CodeLanguages.HAXE]: ['haxe'],
89+
[CodeLanguages.ERLANG]: ['erlang', 'erl'],
90+
[CodeLanguages.F_SHARP]: ['f#', 'fs', 'fsharp'],
91+
[CodeLanguages.FORTRAN]: ['fortran', 'fort', 'f90', 'f95'],
92+
[CodeLanguages.GO]: ['go', 'golang'],
9493
[CodeLanguages.HASKELL]: ['haskell', 'hs'],
95-
[CodeLanguages.JAVA]: ['java'],
96-
[CodeLanguages.JAVASCRIPT]: ['javascript', 'js', 'node.js', 'node'],
97-
[CodeLanguages.KOTLIN]: ['kotlin', 'kot'],
94+
[CodeLanguages.HAXE]: ['haxe', 'hx'],
95+
[CodeLanguages.JAVA]: ['java', 'jsp'],
96+
[CodeLanguages.JAVASCRIPT]: ['javascript', 'js', 'node.js', 'node', 'jsx'],
97+
[CodeLanguages.KOTLIN]: ['kotlin', 'kot', 'kt'],
9898
[CodeLanguages.LISP]: ['commonlisp', 'lisp'],
9999
[CodeLanguages.LUA]: ['lua'],
100100
//[CodeLanguages.MYSQL]: ['mysql'],
101-
[CodeLanguages.OCAML]: ['ocaml'],
101+
[CodeLanguages.OCAML]: ['ocaml', 'ml'],
102102
[CodeLanguages.OCTAVE]: ['octave'],
103103
[CodeLanguages.ORACLE]: ['oracle'],
104104
[CodeLanguages.PASCAL]: ['pascal'],
105-
[CodeLanguages.PERL]: ['perl'],
105+
[CodeLanguages.PERL]: ['perl', 'pl', 'pm'],
106106
[CodeLanguages.PHP]: ['php', 'php7'],
107107
//[CodeLanguages.POSTGRES_SQL]: ['postgresql', 'psql', 'postgres'],
108108
[CodeLanguages.PROLOG]: ['prolog'],
@@ -115,9 +115,9 @@ export const CodeLanguagesToName = Object.freeze({
115115
//[CodeLanguages.SCHEME]: ['scheme'],
116116
//[CodeLanguages.SQL_SERVER]: ['sqlserver'],
117117
[CodeLanguages.SWIFT]: ['swift'],
118-
[CodeLanguages.TCL]: ['tcl'],
118+
[CodeLanguages.TCL]: ['tcl', 'tk'],
119119
[CodeLanguages.TYPESCRIPT]: ['typescript', 'ts'],
120-
[CodeLanguages.VB_NET]: ['visualbasic', 'vb'],
120+
[CodeLanguages.VB_NET]: ['vbnet', 'visualbasic', 'vb'],
121121
});
122122

123123

src/utils/formatter/commands/tools.code.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,21 @@ import { Embed, Markup } from 'detritus-client/lib/utils';
44

55
import { utilitiesCodeRun } from '../../../api';
66
import {
7+
CodeLanguages,
8+
CodeLanguagesToName,
79
EmbedBrands,
810
EmbedColors,
911
} from '../../../constants';
10-
import { createUserEmbed, editOrReply } from '../..';
12+
13+
import { createUserEmbed, editOrReply, toTitleCase } from '../../tools';
14+
15+
16+
export const languagesText = Object.values(CodeLanguages).map((x: any) => {
17+
if (x in CodeLanguagesToName) {
18+
return Markup.codestring(toTitleCase((CodeLanguagesToName as any)[x][0]));
19+
}
20+
return Markup.codestring(toTitleCase(x));
21+
}).sort().join(', ');
1122

1223

1324
export const COMMAND_ID = 'tools code';
@@ -46,22 +57,24 @@ export async function createMessage(
4657
language: args.language,
4758
});
4859

60+
const language = args.language.toLowerCase().replace('_plus_plus', '++').replace('_sharp', '#');
61+
4962
const embed = (isFromInteraction) ? new Embed() : createUserEmbed(context.user);
5063
embed.setColor(EmbedColors.DEFAULT);
5164

52-
let footer = 'Code Execution';
65+
let footer = `${toTitleCase(language)} Code Execution`;
5366
if (stats.time_service && 1000 <= stats.time_service) {
5467
const seconds = (stats.time_service / 1000).toFixed(1);
5568
footer = `${footer}, took ${seconds} seconds`;
5669
}
5770
embed.setFooter(footer, EmbedBrands.NOTSOBOT);
5871

59-
const language = args.language.toLowerCase().replace('_plus_plus', '++').replace('_sharp', '#').split('_').shift()!;
72+
const languageMarkupString = language.split('_').shift()!;
6073
if (error) {
6174
embed.setColor(EmbedColors.ERROR);
62-
embed.setDescription(Markup.codeblock(error, {language}));
75+
embed.setDescription(Markup.codeblock(error, {language: languageMarkupString}));
6376
} else if (content) {
64-
embed.setDescription(Markup.codeblock(content, {language}));
77+
embed.setDescription(Markup.codeblock(content, {language: languageMarkupString}));
6578
} else {
6679
embed.setDescription('No Content');
6780
}

0 commit comments

Comments
 (0)