Skip to content

Commit e6abad5

Browse files
committed
refactor(cli): rename Resolved_Input_File_Language -> File_Language
Prepare for reusing Resolved_Input_File_Language in the LSP server by moving it out of cli/ and renaming it.
1 parent 264b5b4 commit e6abad5

File tree

5 files changed

+37
-45
lines changed

5 files changed

+37
-45
lines changed

src/quick-lint-js/cli/main.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void init();
193193
[[noreturn]] void run(int argc, char **argv);
194194
[[noreturn]] void run(Options o);
195195

196-
Linter_Options get_linter_options_from_language(Resolved_Input_File_Language);
196+
Linter_Options get_linter_options_from_language(File_Language);
197197

198198
void list_debug_apps();
199199
void run_lsp_server();
@@ -319,28 +319,27 @@ void run(Options o) {
319319
std::exit(EXIT_SUCCESS);
320320
}
321321

322-
Linter_Options get_linter_options_from_language(
323-
Resolved_Input_File_Language language) {
322+
Linter_Options get_linter_options_from_language(File_Language language) {
324323
Linter_Options o;
325324
switch (language) {
326-
case Resolved_Input_File_Language::javascript:
325+
case File_Language::javascript:
327326
o.jsx = false;
328327
o.typescript = false;
329328
break;
330-
case Resolved_Input_File_Language::javascript_jsx:
329+
case File_Language::javascript_jsx:
331330
o.jsx = true;
332331
o.typescript = false;
333332
break;
334-
case Resolved_Input_File_Language::typescript:
333+
case File_Language::typescript:
335334
o.jsx = false;
336335
o.typescript = true;
337336
break;
338-
case Resolved_Input_File_Language::typescript_definition:
337+
case File_Language::typescript_definition:
339338
o.jsx = false;
340339
o.typescript = true;
341340
o.typescript_definition = true;
342341
break;
343-
case Resolved_Input_File_Language::typescript_jsx:
342+
case File_Language::typescript_jsx:
344343
o.jsx = true;
345344
o.typescript = true;
346345
break;

src/quick-lint-js/cli/options.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -311,31 +311,28 @@ bool Options::dump_errors(Output_Stream& out) const {
311311
return have_errors;
312312
}
313313

314-
Resolved_Input_File_Language get_language(const File_To_Lint& file,
315-
const Options& options) {
314+
File_Language get_language(const File_To_Lint& file, const Options& options) {
316315
const char* path = file.is_stdin && options.path_for_stdin != nullptr
317316
? options.path_for_stdin
318317
: file.path;
319318
return get_language(path, file.language);
320319
}
321320

322-
Resolved_Input_File_Language get_language(const char* file,
323-
Raw_Input_File_Language language) {
321+
File_Language get_language(const char* file, Raw_Input_File_Language language) {
324322
if (language == Raw_Input_File_Language::default_) {
325323
Path_Classification classification = classify_path(file);
326324
if (classification.typescript_jsx) {
327-
return Resolved_Input_File_Language::typescript_jsx;
325+
return File_Language::typescript_jsx;
328326
} else if (classification.typescript) {
329327
if (classification.typescript_definition) {
330-
return Resolved_Input_File_Language::typescript_definition;
328+
return File_Language::typescript_definition;
331329
}
332-
return Resolved_Input_File_Language::typescript;
330+
return File_Language::typescript;
333331
} else {
334-
return Resolved_Input_File_Language::javascript_jsx;
332+
return File_Language::javascript_jsx;
335333
}
336334
} else {
337-
return int_to_enum_cast<Resolved_Input_File_Language>(
338-
enum_to_int_cast(language));
335+
return int_to_enum_cast<File_Language>(enum_to_int_cast(language));
339336
}
340337
}
341338
}

src/quick-lint-js/cli/options.h

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <optional>
77
#include <quick-lint-js/container/monotonic-allocator.h>
88
#include <quick-lint-js/diag/diag-code-list.h>
9+
#include <quick-lint-js/fe/language.h>
910
#include <quick-lint-js/port/span.h>
1011
#include <quick-lint-js/util/cast.h>
1112

@@ -19,23 +20,13 @@ enum class Output_Format {
1920
emacs_lisp,
2021
};
2122

22-
enum class Resolved_Input_File_Language : unsigned char {
23-
javascript,
24-
javascript_jsx,
25-
typescript,
26-
typescript_definition,
27-
typescript_jsx,
28-
};
29-
3023
enum class Raw_Input_File_Language : unsigned char {
31-
javascript = enum_to_int_cast(Resolved_Input_File_Language::javascript),
32-
javascript_jsx =
33-
enum_to_int_cast(Resolved_Input_File_Language::javascript_jsx),
34-
typescript = enum_to_int_cast(Resolved_Input_File_Language::typescript),
24+
javascript = enum_to_int_cast(File_Language::javascript),
25+
javascript_jsx = enum_to_int_cast(File_Language::javascript_jsx),
26+
typescript = enum_to_int_cast(File_Language::typescript),
3527
typescript_definition =
36-
enum_to_int_cast(Resolved_Input_File_Language::typescript_definition),
37-
typescript_jsx =
38-
enum_to_int_cast(Resolved_Input_File_Language::typescript_jsx),
28+
enum_to_int_cast(File_Language::typescript_definition),
29+
typescript_jsx = enum_to_int_cast(File_Language::typescript_jsx),
3930

4031
// Explicit (--language=default) or implicit (no --language).
4132
default_,
@@ -80,10 +71,8 @@ struct Options {
8071
bool dump_errors(Output_Stream &) const;
8172
};
8273

83-
Resolved_Input_File_Language get_language(const File_To_Lint &file,
84-
const Options &);
85-
Resolved_Input_File_Language get_language(const char *file,
86-
Raw_Input_File_Language language);
74+
File_Language get_language(const File_To_Lint &file, const Options &);
75+
File_Language get_language(const char *file, Raw_Input_File_Language language);
8776

8877
// Returns portions of argv and memory allocated by allocator.
8978
Options parse_options(int argc, char **argv, Monotonic_Allocator *allocator);

src/quick-lint-js/fe/language.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
#include <quick-lint-js/port/char8.h>
88

99
namespace quick_lint_js {
10+
enum class File_Language : unsigned char {
11+
javascript,
12+
javascript_jsx,
13+
typescript,
14+
typescript_definition,
15+
typescript_jsx,
16+
};
17+
1018
// TODO(strager): Rename this because it doesn't only contain kinds of
1119
// statements anymore.
1220
enum class Statement_Kind {

test/test-options.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -481,34 +481,33 @@ TEST_F(Test_Options, invalid_language) {
481481

482482
TEST_F(Test_Options, default_language_guesses_language_from_extension) {
483483
constexpr auto default_language = Raw_Input_File_Language::default_;
484-
constexpr auto javascript_jsx = Resolved_Input_File_Language::javascript_jsx;
484+
constexpr auto javascript_jsx = File_Language::javascript_jsx;
485485
EXPECT_EQ(get_language("<stdin>", default_language), javascript_jsx);
486486
EXPECT_EQ(get_language("hi.js", default_language), javascript_jsx);
487487
EXPECT_EQ(get_language("hi.jsx", default_language), javascript_jsx);
488-
EXPECT_EQ(get_language("hi.ts", default_language),
489-
Resolved_Input_File_Language::typescript);
488+
EXPECT_EQ(get_language("hi.ts", default_language), File_Language::typescript);
490489
EXPECT_EQ(get_language("hi.d.ts", default_language),
491-
Resolved_Input_File_Language::typescript_definition);
490+
File_Language::typescript_definition);
492491
EXPECT_EQ(get_language("hi.d.js", default_language), javascript_jsx);
493492
EXPECT_EQ(get_language("hi.tsx", default_language),
494-
Resolved_Input_File_Language::typescript_jsx);
493+
File_Language::typescript_jsx);
495494
EXPECT_EQ(get_language("hi.txt", default_language), javascript_jsx);
496495

497496
for (char separator : QLJS_ALL_PATH_DIRECTORY_SEPARATORS_SV) {
498497
std::string path =
499498
concat("foo.d.ts"sv, std::string_view(&separator, 1), "bar.ts"sv);
500499
SCOPED_TRACE(path);
501500
EXPECT_EQ(get_language(path.c_str(), default_language),
502-
Resolved_Input_File_Language::typescript)
501+
File_Language::typescript)
503502
<< ".d.ts in containing folder should be ignored";
504503
}
505504
}
506505

507506
TEST_F(Test_Options, get_language_overwritten) {
508507
constexpr auto in_javascript = Raw_Input_File_Language::javascript;
509508
constexpr auto in_javascript_jsx = Raw_Input_File_Language::javascript_jsx;
510-
constexpr auto javascript = Resolved_Input_File_Language::javascript;
511-
constexpr auto javascript_jsx = Resolved_Input_File_Language::javascript_jsx;
509+
constexpr auto javascript = File_Language::javascript;
510+
constexpr auto javascript_jsx = File_Language::javascript_jsx;
512511

513512
EXPECT_EQ(get_language("<stdin>", in_javascript_jsx), javascript_jsx);
514513
EXPECT_EQ(get_language("hi.js", in_javascript_jsx), javascript_jsx);

0 commit comments

Comments
 (0)