A statically typed concatenative systems programming language.
Basic Benchmarks to measure HTML5 performance and support for game related features
low-cost tracing and logging for C++
A jam of ActionScript
Theoretically awesome build system
sibblingz/HTML5-Game-Benchmarks 1
MOVED TO https://github.com/sibblingz/PerfMarks
sibblingz/spaceport-signer-opensource 1
Spaceport application signing tool
Touch screen sample rate tests
push eventstrager/quick-lint-js
commit sha 236b787b4fc0b5cb1087d2b974e68b8b9ae490d9
Improve performance for expected crashes quick-lint-js is incomplete, and has a few places where it intentionally crashes (unknown input byte; unexpected token). When using quick-lint-js with Vim to edit JavaScript, quick-lint-js crashes often. When it crashes, my Linux machine goes nuts creating core dump after core dump. This wastes resources and sometimes slows down my editing experience. Improve the performance of expected crashes by disabling core dumping. This was harder than expected because Linux is weird. This commit should only affect Linux and macOS and other POSIX-y platforms. Windows and emscripten should be unaffected.
push time in an hour
push eventstrager/quick-lint-js
commit sha 236b787b4fc0b5cb1087d2b974e68b8b9ae490d9
Improve performance for expected crashes quick-lint-js is incomplete, and has a few places where it intentionally crashes (unknown input byte; unexpected token). When using quick-lint-js with Vim to edit JavaScript, quick-lint-js crashes often. When it crashes, my Linux machine goes nuts creating core dump after core dump. This wastes resources and sometimes slows down my editing experience. Improve the performance of expected crashes by disabling core dumping. This was harder than expected because Linux is weird. This commit should only affect Linux and macOS and other POSIX-y platforms. Windows and emscripten should be unaffected.
push time in an hour
push eventstrager/quick-lint-js
commit sha 98376bdc7e88f2446fc586b2583a618422659724
Improve performance for expected crashes quick-lint-js is incomplete, and has a few places where it intentionally crashes (unknown input byte; unexpected token). When using quick-lint-js with Vim to edit JavaScript, quick-lint-js crashes often. When it crashes, my Linux machine goes nuts creating core dump after core dump. This wastes resources and sometimes slows down my editing experience. Improve the performance of expected crashes by disabling core dumping. This was harder than expected because Linux is weird. This commit should only affect Linux and macOS and other POSIX-y platforms. Windows and emscripten should be unaffected.
push time in 2 hours
push eventstrager/quick-lint-js
commit sha 334bc13786573c3a1d65885381aed9645917dace
Improve performance for expected crashes quick-lint-js is incomplete, and has a few places where it intentionally crashes (unknown input byte; unexpected token). When using quick-lint-js with Vim to edit JavaScript, quick-lint-js crashes often. When it crashes, my Linux machine goes nuts creating core dump after core dump. This wastes resources and sometimes slows down my editing experience. Improve the performance of expected crashes by disabling core dumping. This was harder than expected because Linux is weird. This commit should only affect Linux and macOS and other POSIX-y platforms. Windows and emscripten should be unaffected.
push time in 2 hours
push eventstrager/quick-lint-js
commit sha 4bcd7dd5029a13c07a0491231cab3b2bb44aff4f
Move posix_fd_file, etc. into their own file I want to use posix_fd_file outside of file.cpp. Move the posix_fd_file class (and the related windows_handle_file class) into its own module so it can be reused. This commit should not change behavior.
push time in 3 hours
push eventstrager/quick-lint-js
commit sha 4bcd7dd5029a13c07a0491231cab3b2bb44aff4f
Move posix_fd_file, etc. into their own file I want to use posix_fd_file outside of file.cpp. Move the posix_fd_file class (and the related windows_handle_file class) into its own module so it can be reused. This commit should not change behavior.
push time in 3 hours
push eventstrager/quick-lint-js
commit sha c890b4c94f9a89483e741a0fa3b2d302007ec818
Move posix_fd_file, etc. into their own file I want to use posix_fd_file outside of file.cpp. Move the posix_fd_file class (and the related windows_handle_file class) into its own module so it can be reused. This commit should not change behavior.
push time in 4 hours
PR merged strager/quick-lint-js
pr closed time in a day
push eventstrager/quick-lint-js
commit sha 597619e79c2a2c9fe3c6de39cba20dbd67ebbea4
Combine double error into single error when assigning to const variable before it has been declared.
commit sha e52bfaab0860bb13383ebf4ca9ecf7440b6797ab
Change order of a condition in report_error_if_assignment_is_illegal without changing functionality.
commit sha ca6c7ff9d5477994c6d82232013109882a01c991
Fix code formatting; run clang-format
commit sha 16a2d255b9abfd500b1ae38f0596ba20e0f65cac
Merge "Combine double error for const variable assignment before declaration"
push time in a day
push eventstrager/quick-lint-js
commit sha ca6c7ff9d5477994c6d82232013109882a01c991
Fix code formatting; run clang-format
commit sha 16a2d255b9abfd500b1ae38f0596ba20e0f65cac
Merge "Combine double error for const variable assignment before declaration"
push time in a day
Pull request review commentstrager/quick-lint-js
TEST(test_parse, debugger_statement) { ElementsAre(spy_visitor::visited_variable_use{u8"x"})); } }++TEST(test_parse, report_missing_semicolon_for_declarations) {+ {+ spy_visitor v;+ padded_string code(u8"let x = 2\nfor (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ EXPECT_THAT(v.errors, IsEmpty());+ }+ {+ spy_visitor v;+ padded_string code(u8"let x = 2 for (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ source_position::offset_type end_of_let_statement =+ strlen(u8"let x = 2");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_let_statement ,+ end_of_let_statement ))));+ }+ {+ spy_visitor v;+ padded_string code(u8"const x debugger");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_const}));+ source_position::offset_type end_of_const_statement =+ strlen(u8"const x");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_const_statement ,+ end_of_const_statement ))));+ }+ {+ spy_visitor v;+ padded_string code(u8"var x debugger");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_var}));+ source_position::offset_type end_of_var_statement =+ strlen(u8"var x");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_var_statement ,+ end_of_var_statement ))));+ }+}
Minor: var isn't really different from const, so I'd delete this almost-duplicate test.
comment created time in a day
Pull request review commentstrager/quick-lint-js
TEST(test_parse, debugger_statement) { ElementsAre(spy_visitor::visited_variable_use{u8"x"})); } }++TEST(test_parse, report_missing_semicolon_for_declarations) {+ {+ spy_visitor v;+ padded_string code(u8"let x = 2\nfor (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ EXPECT_THAT(v.errors, IsEmpty());+ }
Minor: The test talks about reporting missing semicolons, but these lines show that QLJS should not report a missing semicolon in this case. Move this code to a different test, or rename the test.
comment created time in a day
Pull request review commentstrager/quick-lint-js
TEST(test_parse, debugger_statement) { ElementsAre(spy_visitor::visited_variable_use{u8"x"})); } }++TEST(test_parse, report_missing_semicolon_for_declarations) {+ {+ spy_visitor v;+ padded_string code(u8"let x = 2\nfor (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ EXPECT_THAT(v.errors, IsEmpty());+ }+ {+ spy_visitor v;+ padded_string code(u8"let x = 2 for (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ source_position::offset_type end_of_let_statement =+ strlen(u8"let x = 2");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_let_statement ,+ end_of_let_statement ))));+ }
:+1:
comment created time in a day
Pull request review commentstrager/quick-lint-js
TEST(test_parse, debugger_statement) { ElementsAre(spy_visitor::visited_variable_use{u8"x"})); } }++TEST(test_parse, report_missing_semicolon_for_declarations) {+ {+ spy_visitor v;+ padded_string code(u8"let x = 2\nfor (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ EXPECT_THAT(v.errors, IsEmpty());+ }+ {+ spy_visitor v;+ padded_string code(u8"let x = 2 for (;;) { console.log(); }");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_let}));+ EXPECT_THAT(v.variable_uses,+ ElementsAre(spy_visitor::visited_variable_use{u8"console"}));+ source_position::offset_type end_of_let_statement =+ strlen(u8"let x = 2");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_let_statement ,+ end_of_let_statement ))));+ }+ {+ spy_visitor v;+ padded_string code(u8"const x debugger");+ parser p(&code, &v);+ p.parse_and_visit_statement(v);+ p.parse_and_visit_statement(v);+ EXPECT_THAT(v.variable_declarations,+ ElementsAre(spy_visitor::visited_variable_declaration{+ u8"x", variable_kind::_const}));+ source_position::offset_type end_of_const_statement =+ strlen(u8"const x");+ EXPECT_THAT(v.errors, ElementsAre(ERROR_TYPE_FIELD(+ error_missing_semicolon_after_expression, where,+ offsets_matcher(&code, end_of_const_statement ,+ end_of_const_statement ))));+ }
:+1: Good error reporting!
comment created time in a day
Pull request review commentstrager/quick-lint-js
class parser { break; case token_type::kw_if: case token_type::number:+ case token_type::kw_debugger:
Nit: Sort these cases alphabetically:
case token_type::kw_debugger:
case token_type::kw_if:
case token_type::number:
comment created time in a day
Pull request review commentstrager/quick-lint-js
Combine double error for const variable assignment before declaration
void linter::propagate_variable_declarations_to_parent_scope() { } void linter::report_error_if_assignment_is_illegal(- const linter::declared_variable *var, const identifier &assignment) const {+ const linter::declared_variable *var, const identifier &assignment, bool is_assigned_before_declaration) const { switch (var->kind) { case variable_kind::_const: case variable_kind::_import: if (var->is_global_variable) { this->error_reporter_->report( error_assignment_to_const_global_variable{assignment}); } else {- this->error_reporter_->report(error_assignment_to_const_variable{- var->declaration(), assignment, var->kind});+ if (!is_assigned_before_declaration) {
Nit: I dislike double negatives; line 438 executes if ! !is_assigned_before_declaration. Invert this if to avoid double negatives.
comment created time in a day
Pull request review commentstrager/quick-lint-js
Combine double error for const variable assignment before declaration
.error(u8"assignment to const variable", assignment) \ .note(u8"const variable declared here", declaration)) \ \+ QLJS_ERROR_TYPE( \+ error_assignment_to_const_variable_before_its_declaration, \+ { \+ identifier declaration; \+ identifier assignment; \+ variable_kind var_kind; \+ }, \+ .error(u8"assignment to const variable before its declaration", assignment) \+ .note(u8"const variable declared here", declaration)) \
:+1:
comment created time in a day
PR closed strager/quick-lint-js
expected expression is reported when throw is followed by
semicolon.
unexpected newline is reported when throw is followed by a newline.
pr closed time in a day
pull request commentstrager/quick-lint-js
Report error when `throw` statement is incomplete or has newline.
Landed as commit 5c81385e8c53e099d3d6633f997fb91f15edbb09. (I rebased and ran clang-format on the sources.)
comment created time in a day
push eventstrager/quick-lint-js
commit sha 4f2b9438121fe485b601b45fe7b3f9f5f7f53263
Document parts of the linter
commit sha 245951502a4e680a67f2f26e6b2cb00c34b9181c
Document parts of the parser
commit sha 25be7d4df9367b993b0db40fc76f220560b16d6f
Delete unused #include-s
commit sha f2c7678f2da552719c44ae4e50b39a31d8bf2745
Delete unused expression_arena::make_array overload
commit sha 948b292783232d8c4b84982480eb07b36cc387ac
Fix wrong variable name in comment Make the function declaration and definition use consistent parameter names, and fix comments in callers referencing the paramter by name. This commit should not change behavior.
commit sha f0ae2126daafbdc83e7c4b975cfad6210e889b04
Fix capitalization in variable name
commit sha 7475d4f8d6f58a2f533775f68ebf1a79f8b6a608
Avoid char in math; use unsigned types instead clang-tidy complains about conversions from int to char and other stuff in char_vector_1::operator| and in lexer::parse_identifier. Because char's type is ambiguously signed or unsigned, clang-tidy thinks these conversions might be buggy. Avoid any problematic conversions by using an unsigned type explicitly (std::uint8_t or char8_t). This commit should not change behavior.
commit sha 0ef30da53868606c2a2ce9c8e2738133ac3ab35c
Nit: use C++17 nested namespace syntax
commit sha cecc80b99b1ab5da942c0ae7043a4f51ba52ce06
Use const references in dump_max_size_histogram for clarity
commit sha 16fc99503d2d4bca4f1ebab1cfd2c992d15f2036
Fix use of uninitialized variable lexer::parse_current_token reads from this->last_token_.end. this->last_token_.end is not initialized in lexer's constructor, so the read is UB. Initialize this->last_token_.end to fix this. Also, while we're here, remove the dead stores to this->last_token_.begin and this->last_last_token_end_. lexer::parse_current_token assigns to those variables already (before reading). This commit should not change behavior.
commit sha 5c81385e8c53e099d3d6633f997fb91f15edbb09
Report error when `throw` statement is incomplete or has newline. `expected expression before semicolon` is reported when `throw` is followed by semicolon. `expected expression before newline` is reported when `throw` is followed by a newline.
push time in a day
push eventstrager/quick-lint-js
commit sha 25be7d4df9367b993b0db40fc76f220560b16d6f
Delete unused #include-s
commit sha f2c7678f2da552719c44ae4e50b39a31d8bf2745
Delete unused expression_arena::make_array overload
commit sha 948b292783232d8c4b84982480eb07b36cc387ac
Fix wrong variable name in comment Make the function declaration and definition use consistent parameter names, and fix comments in callers referencing the paramter by name. This commit should not change behavior.
commit sha f0ae2126daafbdc83e7c4b975cfad6210e889b04
Fix capitalization in variable name
commit sha 7475d4f8d6f58a2f533775f68ebf1a79f8b6a608
Avoid char in math; use unsigned types instead clang-tidy complains about conversions from int to char and other stuff in char_vector_1::operator| and in lexer::parse_identifier. Because char's type is ambiguously signed or unsigned, clang-tidy thinks these conversions might be buggy. Avoid any problematic conversions by using an unsigned type explicitly (std::uint8_t or char8_t). This commit should not change behavior.
commit sha 0ef30da53868606c2a2ce9c8e2738133ac3ab35c
Nit: use C++17 nested namespace syntax
commit sha cecc80b99b1ab5da942c0ae7043a4f51ba52ce06
Use const references in dump_max_size_histogram for clarity
commit sha 16fc99503d2d4bca4f1ebab1cfd2c992d15f2036
Fix use of uninitialized variable lexer::parse_current_token reads from this->last_token_.end. this->last_token_.end is not initialized in lexer's constructor, so the read is UB. Initialize this->last_token_.end to fix this. Also, while we're here, remove the dead stores to this->last_token_.begin and this->last_last_token_end_. lexer::parse_current_token assigns to those variables already (before reading). This commit should not change behavior.
push time in a day
push eventstrager/quick-lint-js
commit sha 4f2b9438121fe485b601b45fe7b3f9f5f7f53263
Document parts of the linter
commit sha 245951502a4e680a67f2f26e6b2cb00c34b9181c
Document parts of the parser
push time in a day
push eventstrager/quick-lint-js
commit sha 6197d66611a7d14b7cab2bf3d6045252e6d778c3
Fix code formatting; run clang-format
commit sha 4455c73fdfd6b9b5e4160d73e7505101132619ba
Added --help option with strager's feedback
commit sha 724c09aa08209dab9d9baa921b7307a4640655c9
Adds script to run js code through 3 popular js engines Wrote this script as part of https://github.com/strager/quick-lint-js/issues/7 , and figured since I wrote this anyways, might as well share it
commit sha 007abcbe43cbcf3aee9248227f66f954db7739f5
Fix code formatting; run clang-format
commit sha 1238034f4bd6012fc3db6774784a83920d5b0df7
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha c4bf670e42164a58b2577a5201f9e284d6bad717
WASM: add error reporter for WASM demo Create an error_reporter class which can be called easily from JavaScript code (assuming quick-lint-js is compiled to WebAssembly). A future commit will include the JavaScript code which uses this error_reporter.
commit sha 73c07405d4189c19f80772485ae7d230d085d7e6
WASM: add Node.js CLI I want to use quick-lint-js in a web browser. Add the glue to make it possible to call quick-lint-js code from JavaScript code in Node.js. To run the code included in this commit, install the emscripten SDK [1] then run the following commands: $ emcmake cmake -S . -B build-emscripten -G Ninja $ emmake ninja -v -C build-emscripten quick-lint-js-wasm-demo $ node demo/test.mjs $ node demo/cli.mjs hello.js Future commits will integrate quick-lint-js with the browser. [1] https://emscripten.org/docs/getting_started/downloads.html
commit sha 82d963e9516cf594cd615252b788765bd6abde49
WASM: add demo web page I want to demonstrate quick-lint-js' abilities. Make a web page with a text editor which highlights errors inline. The demo page has a lot of missing features and a lot of bugs. Some day, this demo page will be improved. In order to run the demo properly, you must first build quick-lint-js with emscripten into a directory named 'build-emscripten'. The workflow will be improved in the future.
commit sha 5f16f3b7f26036d521443aa21057d0bae030f2b1
WASM: add build instructions Make the web quick-lint-js demo easier to set up by including instructions on building the demo.
commit sha 319ae46880574a3f962d89c56d12a4bfd399daf9
CI: build and test WASM demo
commit sha c04a48a6ab2ff06707fd058ec25f7e4f49903c7e
CI: add stub workflow for deploying web demo I want a workflow for deploying the web demo. I suspect GitHub only allows triggering a manual workflow if the workflow .yml file is on the default branch (master). Test this theory by copying the example workflow from GitHub's documentation on manually-triggered workflows [1]. [1] https://docs.github.com/en/actions/reference/events-that-trigger-workflows#example-workflow-configuration
commit sha d9a2378909ef55b5226989d3e90eea02a49f142b
CI: deploy web demo to GitHub Pages Create a GitHub Actions workflow which publishes a fully-built demo site to GitHub Pages. Publishing currently happens manually. Currently, you can view the site at: https://strager.github.io/quick-lint-js/
commit sha 66e89820bac9e8b06f385b2d544c73bceffb6fd7
Add missing copyright header
commit sha dc2a9e6b1b1bf0c30c65960159b0efaf6f1aeeac
CI: link GitHub pages to domain Ensure the peaceiris/actions-gh-pages@v3 action doesn't delete the `cname` file on the gh-pages branch.
commit sha b6b75cc69cea24dec5e1af55d5c30db8bf0e392b
Document parts of the linter
commit sha 595cf7f331d4580bb38d0ced12f0a84f6cc825dc
Document parts of the parser
push time in a day
push eventstrager/quick-lint-js
commit sha dc2a9e6b1b1bf0c30c65960159b0efaf6f1aeeac
CI: link GitHub pages to domain Ensure the peaceiris/actions-gh-pages@v3 action doesn't delete the `cname` file on the gh-pages branch.
push time in 2 days
push eventstrager/quick-lint-js
commit sha d9a2378909ef55b5226989d3e90eea02a49f142b
CI: deploy web demo to GitHub Pages Create a GitHub Actions workflow which publishes a fully-built demo site to GitHub Pages. Publishing currently happens manually. Currently, you can view the site at: https://strager.github.io/quick-lint-js/
commit sha 66e89820bac9e8b06f385b2d544c73bceffb6fd7
Add missing copyright header
commit sha dc2a9e6b1b1bf0c30c65960159b0efaf6f1aeeac
CI: link GitHub pages to domain Ensure the peaceiris/actions-gh-pages@v3 action doesn't delete the `cname` file on the gh-pages branch.
push time in 2 days
push eventstrager/quick-lint-js
commit sha 007abcbe43cbcf3aee9248227f66f954db7739f5
Fix code formatting; run clang-format
commit sha e55b699d22a74140a31f9e9896657dc71ec0a391
@@@ CI: run on pull requests Only Travis CI is running on pull requests from other repositories. Run our GitHub workflows as well on pull requests to improve test coverage.
push time in 2 days
push eventstrager/quick-lint-js
commit sha 0a28df67b3846341bbd1916889d1eb3566400718
Create CNAME
push time in 2 days
push eventstrager/quick-lint-js
commit sha 66e89820bac9e8b06f385b2d544c73bceffb6fd7
Add missing copyright header
push time in 2 days
push eventstrager/quick-lint-js
commit sha d9a2378909ef55b5226989d3e90eea02a49f142b
CI: deploy web demo to GitHub Pages Create a GitHub Actions workflow which publishes a fully-built demo site to GitHub Pages. Publishing currently happens manually. Currently, you can view the site at: https://strager.github.io/quick-lint-js/
push time in 2 days
push eventstrager/quick-lint-js
commit sha ffb813fa10651e044d9f8787dd1468552e0d6b9d
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha 2489a2d0d4e2820e8ab25244a54d6da1e89e072d
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha 1f5dccd78a20b0980aa78e9d967ab56504d25ac1
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha c5757f5c7a10f31e3043d087956b4b2ca9776bfa
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha e21d4786238da9aee8679f4c0ca27565b7c10bf3
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha 56f2f662432e169a6514aad64c1e9b8ca5086d8f
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha 0331ec64694ef1acbcd5bced4a367410922ca775
updowbnkjnlkj;lkj
push time in 2 days
push eventstrager/quick-lint-js
commit sha c04a48a6ab2ff06707fd058ec25f7e4f49903c7e
CI: add stub workflow for deploying web demo I want a workflow for deploying the web demo. I suspect GitHub only allows triggering a manual workflow if the workflow .yml file is on the default branch (master). Test this theory by copying the example workflow from GitHub's documentation on manually-triggered workflows [1]. [1] https://docs.github.com/en/actions/reference/events-that-trigger-workflows#example-workflow-configuration
push time in 2 days
push eventstrager/quick-lint-js
commit sha c04a48a6ab2ff06707fd058ec25f7e4f49903c7e
CI: add stub workflow for deploying web demo I want a workflow for deploying the web demo. I suspect GitHub only allows triggering a manual workflow if the workflow .yml file is on the default branch (master). Test this theory by copying the example workflow from GitHub's documentation on manually-triggered workflows [1]. [1] https://docs.github.com/en/actions/reference/events-that-trigger-workflows#example-workflow-configuration
push time in 2 days
push eventstrager/quick-lint-js
commit sha 7eb9fc4ed0d16def832b7a8d1ebc91fb047f9d3a
@@@ upload
push time in 2 days
push eventstrager/quick-lint-js
commit sha fd375ff94e0677c0d224538d5ab8f2eed579e461
@@@ upload
push time in 2 days
push eventstrager/quick-lint-js
commit sha 87c68a5308458c91610c43c6e85127021749530a
@@@ upload
push time in 2 days
push eventstrager/quick-lint-js
commit sha 1238034f4bd6012fc3db6774784a83920d5b0df7
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha c4bf670e42164a58b2577a5201f9e284d6bad717
WASM: add error reporter for WASM demo Create an error_reporter class which can be called easily from JavaScript code (assuming quick-lint-js is compiled to WebAssembly). A future commit will include the JavaScript code which uses this error_reporter.
commit sha 73c07405d4189c19f80772485ae7d230d085d7e6
WASM: add Node.js CLI I want to use quick-lint-js in a web browser. Add the glue to make it possible to call quick-lint-js code from JavaScript code in Node.js. To run the code included in this commit, install the emscripten SDK [1] then run the following commands: $ emcmake cmake -S . -B build-emscripten -G Ninja $ emmake ninja -v -C build-emscripten quick-lint-js-wasm-demo $ node demo/test.mjs $ node demo/cli.mjs hello.js Future commits will integrate quick-lint-js with the browser. [1] https://emscripten.org/docs/getting_started/downloads.html
commit sha 82d963e9516cf594cd615252b788765bd6abde49
WASM: add demo web page I want to demonstrate quick-lint-js' abilities. Make a web page with a text editor which highlights errors inline. The demo page has a lot of missing features and a lot of bugs. Some day, this demo page will be improved. In order to run the demo properly, you must first build quick-lint-js with emscripten into a directory named 'build-emscripten'. The workflow will be improved in the future.
commit sha 5f16f3b7f26036d521443aa21057d0bae030f2b1
WASM: add build instructions Make the web quick-lint-js demo easier to set up by including instructions on building the demo.
commit sha 319ae46880574a3f962d89c56d12a4bfd399daf9
CI: build and test WASM demo
push time in 2 days
push eventstrager/quick-lint-js
commit sha 319ae46880574a3f962d89c56d12a4bfd399daf9
CI: build and test WASM demo
push time in 2 days
push eventstrager/quick-lint-js
commit sha 0d4eeaad8f92bf0e13610bd801165361d14a979d
CI: build and test WASM demo
push time in 2 days
push eventstrager/quick-lint-js
commit sha 1aad524ecf26e0e16ee1783ded7fbef313d0ad2b
CI: build and test WASM demo
push time in 2 days
push eventstrager/quick-lint-js
commit sha bab61314e143ea9f7b35cbadf121015ef7abe324
CI: build and test WASM demo
push time in 2 days
push eventstrager/quick-lint-js
commit sha 9cc751a8ede3dc7594de7a1776f1d05daa7a6e4c
wip
push time in 2 days
push eventstrager/quick-lint-js
commit sha 0236571a6cbbea14e1aad9b787cde920cdfe7ddc
wip
push time in 2 days
push eventstrager/quick-lint-js
commit sha 5f16f3b7f26036d521443aa21057d0bae030f2b1
WASM: add build instructions Make the web quick-lint-js demo easier to set up by including instructions on building the demo.
commit sha bd1abf58bdce3a8f3a4ae6ec724cb3df2d8344a7
plz
push time in 2 days
push eventstrager/quick-lint-js
commit sha aa93cbb7c2fd024fec3a2517a266d3b3989f2aca
plz
push time in 2 days
push eventstrager/quick-lint-js
commit sha e9db2372142f2140e0c0802e6807626680c25501
plz
push time in 2 days
push eventstrager/quick-lint-js
commit sha 4455c73fdfd6b9b5e4160d73e7505101132619ba
Added --help option with strager's feedback
commit sha 724c09aa08209dab9d9baa921b7307a4640655c9
Adds script to run js code through 3 popular js engines Wrote this script as part of https://github.com/strager/quick-lint-js/issues/7 , and figured since I wrote this anyways, might as well share it
commit sha 007abcbe43cbcf3aee9248227f66f954db7739f5
Fix code formatting; run clang-format
commit sha 1238034f4bd6012fc3db6774784a83920d5b0df7
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha c4bf670e42164a58b2577a5201f9e284d6bad717
WASM: add error reporter for WASM demo Create an error_reporter class which can be called easily from JavaScript code (assuming quick-lint-js is compiled to WebAssembly). A future commit will include the JavaScript code which uses this error_reporter.
commit sha 73c07405d4189c19f80772485ae7d230d085d7e6
WASM: add Node.js CLI I want to use quick-lint-js in a web browser. Add the glue to make it possible to call quick-lint-js code from JavaScript code in Node.js. To run the code included in this commit, install the emscripten SDK [1] then run the following commands: $ emcmake cmake -S . -B build-emscripten -G Ninja $ emmake ninja -v -C build-emscripten quick-lint-js-wasm-demo $ node demo/test.mjs $ node demo/cli.mjs hello.js Future commits will integrate quick-lint-js with the browser. [1] https://emscripten.org/docs/getting_started/downloads.html
commit sha 82d963e9516cf594cd615252b788765bd6abde49
WASM: add demo web page I want to demonstrate quick-lint-js' abilities. Make a web page with a text editor which highlights errors inline. The demo page has a lot of missing features and a lot of bugs. Some day, this demo page will be improved. In order to run the demo properly, you must first build quick-lint-js with emscripten into a directory named 'build-emscripten'. The workflow will be improved in the future.
commit sha e4eca73e988dcb4c50c586ec3ef5ab9e18e3e982
WASM: add build instructions Make the web quick-lint-js demo easier to set up by including instructions on building the demo.
push time in 2 days
push eventstrager/quick-lint-js
commit sha c5e314562c435f140f197eddd524ee2fb17809ff
WASM: add build instructions Make the web quick-lint-js demo easier to set up by including instructions on building the demo.
push time in 2 days
push eventstrager/quick-lint-js
commit sha e3e4e3c38f6323d36dcb3e7e336745b1c1fada96
WASM: add error reporter for WASM demo Create an error_reporter class which can be called easily from JavaScript code (assuming quick-lint-js is compiled to WebAssembly). A future commit will include the JavaScript code which uses this error_reporter.
commit sha be2752251a1d0a846ff0ba941bcf1a3257eba081
WASM: add Node.js CLI I want to use quick-lint-js in a web browser. Add the glue to make it possible to call quick-lint-js code from JavaScript code in Node.js. To run the code included in this commit, install the emscripten SDK [1] then run the following commands: $ emcmake cmake -S . -B build-emscripten -G Ninja $ emmake ninja -v -C build-emscripten quick-lint-js-wasm-demo $ node demo/test.mjs $ node demo/cli.mjs hello.js Future commits will integrate quick-lint-js with the browser. [1] https://emscripten.org/docs/getting_started/downloads.html
commit sha e4fb379ae52a64e2b183393a8701df5d4372468f
WASM: add demo web page I want to demonstrate quick-lint-js' abilities. Make a web page with a text editor which highlights errors inline. The demo page has a lot of missing features and a lot of bugs. Some day, this demo page will be improved. In order to run the demo properly, you must first build quick-lint-js with emscripten into a directory named 'build-emscripten'. The workflow will be improved in the future.
push time in 2 days
push eventstrager/quick-lint-js
commit sha 08cf640ceb1107902b16c8d1863c6f4f9715f9e6
Add errors for consecutive underscores Numbers with consecutive underscores should have an error reported for each group of consecutive underscores.
commit sha 8c6bd9fc65b45df08a0f07b4584a06f078f83281
Clean-up of files generated by tests.
commit sha 0c9269b832f6f0fe1d020d5d0a81edd5b70ffe8c
Simplify consecutive underscore reporting Reporting was moved to the parse_decimal_digits_and_underscores function after making it an instance method. The lexer was previously not considering the tokens after consecutive underscores to be the same token. This change also simplified the underscore reporting considerably.
commit sha cf3aaf84bbf91d077e94bee21734db576a6742a4
Alphabetize error declaration
commit sha 5ab4bfc55443cfaff0d141ab802331043f21132f
Update tests to use `underscores` name
commit sha a28961e325fd47cab3cac1799eeb3532085b25ca
Use input rather than instantiating garbage_end
commit sha 6b80b616fd6c537439ed7987e0184ac922a41251
Move instantiation to outer loop Rather than do input - 1, we are now creating garbage_begin from input minus 1.
commit sha 70ac2c5ee0078c9daaada6d16e5c8f3083b4baee
Merge "Add errors for consecutive underscores"
commit sha 6197d66611a7d14b7cab2bf3d6045252e6d778c3
Fix code formatting; run clang-format
commit sha a78a55dfa885a697a79e3ef0707a04d6049aadf3
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha 42262d2a4b848a708dff387fbf45caa174dc819e
WASM: add error reporter for WASM demo
commit sha 28efe3a6dc0057815214c649d283fcaec132afc9
WASM: add Node.js CLI
commit sha 7ca8a1f59282324a16eb1e0137839736a82ad43e
WASM: add demo web page
push time in 2 days
push eventstrager/quick-lint-js
commit sha e143ac289113094c981329aedd7c07cd94eb0626
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha dd764b8b65284a15abcfbac0fe50db00ed1207d8
WASM: add error reporter for WASM demo
commit sha b5ab49b6e1acb96d66a363938ccdb458325caff9
WASM: add Node.js CLI
commit sha 7c1d378493d1ffede60ef2030ebc760b717e948e
WASM: add demo web page
commit sha 1226604f1885cb4cb1d5b582cb06dd832f209182
edgecase
commit sha e0b4c6dab047fefedf6b3102f35112efee6af6af
wip
commit sha baa2d146808b15af45ca02fadc35dcba1ece6aab
wip
commit sha e4e50f89cda51c6fdde2dc5bfc1d30c2cc5bf45b
wip
commit sha c80b2e485534aa613129db782210661b79056a93
wip
push time in 2 days
push eventstrager/quick-lint-js
commit sha 007abcbe43cbcf3aee9248227f66f954db7739f5
Fix code formatting; run clang-format
push time in 3 days
push eventstrager/quick-lint-js
commit sha 724c09aa08209dab9d9baa921b7307a4640655c9
Adds script to run js code through 3 popular js engines Wrote this script as part of https://github.com/strager/quick-lint-js/issues/7 , and figured since I wrote this anyways, might as well share it
push time in 3 days
PR merged strager/quick-lint-js
Wrote this 2-minute script as part of https://github.com/strager/quick-lint-js/issues/7 , and figured since I wrote this anyways, might as well share it.
But looks like Yahya doesn't like it
pr closed time in 3 days
push eventstrager/quick-lint-js
commit sha 44a6d0613172e4c1514038c2c484a416d0f1d113
Vim: don't mix JSON and human-readable output --output-format=vim-qflist-json prints JSON to stdout, but also prints human-readable fatal errors to stdout. If a fatal error occurs, stdout is not parsable as JSON at all. Print human-readable fatal errors to stderr instead, keeping stdout for only JSON. This commit should fix https://github.com/strager/quick-lint-js/issues/33.
commit sha da2368319f3794b0ab40fe049f785436243a0991
Remove confusing CTest instructions CTest' defaults suck. On test failure, no output is shown, making it pointless for developers. Worse, users of 'make test' or 'ninja test' can't customize the invoked CTest command, and CTest is inconvenient to call directly (because it requires a `cd` command first). Drop documentation recommending CTest. Encourage contributors to run the test executable directly.
commit sha 40c367254d08e4299c5a72b69b694a8a1527bd4b
Fix compilation if !GTEST_HAS_DEATH_TEST On some platforms, such as emscripten, googletest does not support death tests. Fix compilation on these platforms by disabling our death tests if they are unsupported.
commit sha ccb14c78833bd42ca05284cb6062c44e531652fc
@@@ emcc
push time in 3 days
push eventstrager/quick-lint-js
commit sha 4455c73fdfd6b9b5e4160d73e7505101132619ba
Added --help option with strager's feedback
push time in 3 days
PR merged strager/quick-lint-js
Here is the implementation i did. I created a simple lambda helper to print the different options but i used const char * in order to pass the arguments, don't know if that's right. I saw that you had a padded-string helper but not sure if i should use it or this is ok.
pr closed time in 3 days
push eventstrager/quick-lint-js
commit sha 6197d66611a7d14b7cab2bf3d6045252e6d778c3
Fix code formatting; run clang-format
push time in 3 days
PR merged strager/quick-lint-js
Here is my attempt at #32.
I have one question (at least). When I use u8"123___45___67" as input, "123___", "45___", and "67" are all considered different tokens. I found this out when I was getting a test failure that I was not at token_type::end_of_file. Is this intentional, or do you want me to include an update to make it consider the whole thing one token?
On one hand, it seems like it should be one token. On the other hand, each group of consecutive underscores is currently reported as a separate linting error, with no special walking to make it happen.
I look forward to your feedback. I haven't written C++ since high school 20 years ago, so I appreciate you letting us contribute!
pr closed time in 3 days
push eventstrager/quick-lint-js
commit sha 08cf640ceb1107902b16c8d1863c6f4f9715f9e6
Add errors for consecutive underscores Numbers with consecutive underscores should have an error reported for each group of consecutive underscores.
commit sha 0c9269b832f6f0fe1d020d5d0a81edd5b70ffe8c
Simplify consecutive underscore reporting Reporting was moved to the parse_decimal_digits_and_underscores function after making it an instance method. The lexer was previously not considering the tokens after consecutive underscores to be the same token. This change also simplified the underscore reporting considerably.
commit sha cf3aaf84bbf91d077e94bee21734db576a6742a4
Alphabetize error declaration
commit sha 5ab4bfc55443cfaff0d141ab802331043f21132f
Update tests to use `underscores` name
commit sha a28961e325fd47cab3cac1799eeb3532085b25ca
Use input rather than instantiating garbage_end
commit sha 6b80b616fd6c537439ed7987e0184ac922a41251
Move instantiation to outer loop Rather than do input - 1, we are now creating garbage_begin from input minus 1.
commit sha 70ac2c5ee0078c9daaada6d16e5c8f3083b4baee
Merge "Add errors for consecutive underscores"
push time in 3 days
push eventstrager/quick-lint-js
commit sha 08cf640ceb1107902b16c8d1863c6f4f9715f9e6
Add errors for consecutive underscores Numbers with consecutive underscores should have an error reported for each group of consecutive underscores.
commit sha da2368319f3794b0ab40fe049f785436243a0991
Remove confusing CTest instructions CTest' defaults suck. On test failure, no output is shown, making it pointless for developers. Worse, users of 'make test' or 'ninja test' can't customize the invoked CTest command, and CTest is inconvenient to call directly (because it requires a `cd` command first). Drop documentation recommending CTest. Encourage contributors to run the test executable directly.
commit sha 8c6bd9fc65b45df08a0f07b4584a06f078f83281
Clean-up of files generated by tests.
commit sha 0c9269b832f6f0fe1d020d5d0a81edd5b70ffe8c
Simplify consecutive underscore reporting Reporting was moved to the parse_decimal_digits_and_underscores function after making it an instance method. The lexer was previously not considering the tokens after consecutive underscores to be the same token. This change also simplified the underscore reporting considerably.
commit sha cf3aaf84bbf91d077e94bee21734db576a6742a4
Alphabetize error declaration
commit sha 5ab4bfc55443cfaff0d141ab802331043f21132f
Update tests to use `underscores` name
commit sha a28961e325fd47cab3cac1799eeb3532085b25ca
Use input rather than instantiating garbage_end
commit sha 6b80b616fd6c537439ed7987e0184ac922a41251
Move instantiation to outer loop Rather than do input - 1, we are now creating garbage_begin from input minus 1.
commit sha 70ac2c5ee0078c9daaada6d16e5c8f3083b4baee
Merge "Add errors for consecutive underscores"
push time in 3 days
push eventstrager/quick-lint-js
commit sha 8c6bd9fc65b45df08a0f07b4584a06f078f83281
Clean-up of files generated by tests.
push time in 3 days
PR merged strager/quick-lint-js
In reference to issue #12
pr closed time in 3 days
pull request commentstrager/quick-lint-js
This PR still has conflicts with master. Do you need help resolving the conflicts?
comment created time in 3 days
issue openedstrager/quick-lint-js
`x += 1` reports two errors, should report one
created time in 4 days
issue commentstrager/quick-lint-js
Report error for extra underscores in number literals
In commit da2368319f3794b0ab40fe049f785436243a0991 I reworded the documentation. Hopefully it should be easier to follow.
comment created time in 5 days
push eventstrager/quick-lint-js
commit sha da2368319f3794b0ab40fe049f785436243a0991
Remove confusing CTest instructions CTest' defaults suck. On test failure, no output is shown, making it pointless for developers. Worse, users of 'make test' or 'ninja test' can't customize the invoked CTest command, and CTest is inconvenient to call directly (because it requires a `cd` command first). Drop documentation recommending CTest. Encourage contributors to run the test executable directly.
push time in 5 days
issue commentstrager/quick-lint-js
Report error for extra underscores in number literals
Answered in person: Run the quick-lint-js-test executable directly to see output.
comment created time in 5 days
issue commentstrager/quick-lint-js
Default loctation of qljs executable after building
Not familiar other projects' patterns, but wondering if it is normal to place the compiled target in the
srcdirectory.
There's no standardization for developers.
End users run make install to put the executable in the correct place.
Do you want to put the executable somewhere else? I don't know what you're asking for in this GitHub issue.
comment created time in 6 days
issue commentstrager/quick-lint-js
Report error for extra underscores in number literals
For instructions on building and running the test suite, see this documentation: https://github.com/strager/quick-lint-js/blob/master/docs/BUILDING.md Specifically step 3 Run. The test suite is a single executable you can run from a command line.
I did install the googletest library
You don't need to install googletest yourself. It's packaged in quick-lint-js' repository.
I also installed https://github.com/alepez/vim-gtest in vim.
I haven't used or heard of this plugin, so I don't know if it will work with quick-lint-js. I'd run the tests without this plugin first to ensure quick-lint-js' build system is configured correctly.
comment created time in 6 days
push eventstrager/quick-lint-js
commit sha 44a6d0613172e4c1514038c2c484a416d0f1d113
Vim: don't mix JSON and human-readable output --output-format=vim-qflist-json prints JSON to stdout, but also prints human-readable fatal errors to stdout. If a fatal error occurs, stdout is not parsable as JSON at all. Print human-readable fatal errors to stderr instead, keeping stdout for only JSON. This commit should fix https://github.com/strager/quick-lint-js/issues/33.
push time in 6 days
issue closedstrager/quick-lint-js
The following file causes our Vim ALE integration to crash:
let = 3;
x = 4;
Error detected while processing function <SNR>67_VimCloseCallback[11]..<SNR>67_VimExitCallback[14]..<S
NR>63_HandleExit[43]..quick_lint_js_ale#parse_command_output:
line 9:
E491: json decode error at '../src/include/quick-lint-js/parse.h:177: fatal: token not implemented in
parse_and_visit_statement: equal on line 1 column 5]}'
closed time in 6 days
stragerpush eventstrager/quick-lint-js
commit sha 190f5a1e0d19774787eacb86fc63a22ba0aae4bb
Vim: Add a Vim plugin, integrating with ALE Some Vim users use the ALE plugin to integrate linters into their editor. Provide quick-lint-js ALE integration with a Vim plugin. I didn't really test the README instructions, so there are likely mistakes.
commit sha 44a6d0613172e4c1514038c2c484a416d0f1d113
Vim: don't mix JSON and human-readable output --output-format=vim-qflist-json prints JSON to stdout, but also prints human-readable fatal errors to stdout. If a fatal error occurs, stdout is not parsable as JSON at all. Print human-readable fatal errors to stderr instead, keeping stdout for only JSON. This commit should fix https://github.com/strager/quick-lint-js/issues/33.
push time in 6 days
issue openedstrager/quick-lint-js
The following file causes our Vim ALE integration to crash:
let = 3;
x = 4;
Error detected while processing function <SNR>67_VimCloseCallback[11]..<SNR>67_VimExitCallback[14]..<S
NR>63_HandleExit[43]..quick_lint_js_ale#parse_command_output:
line 9:
E491: json decode error at '../src/include/quick-lint-js/parse.h:177: fatal: token not implemented in
parse_and_visit_statement: equal on line 1 column 5]}'
created time in 7 days
push eventstrager/quick-lint-js
commit sha 190f5a1e0d19774787eacb86fc63a22ba0aae4bb
Vim: Add a Vim plugin, integrating with ALE Some Vim users use the ALE plugin to integrate linters into their editor. Provide quick-lint-js ALE integration with a Vim plugin. I didn't really test the README instructions, so there are likely mistakes.
push time in 7 days
push eventstrager/quick-lint-js
commit sha 190f5a1e0d19774787eacb86fc63a22ba0aae4bb
Vim: Add a Vim plugin, integrating with ALE Some Vim users use the ALE plugin to integrate linters into their editor. Provide quick-lint-js ALE integration with a Vim plugin. I didn't really test the README instructions, so there are likely mistakes.
push time in 7 days
push eventstrager/quick-lint-js
commit sha 6f22a33d0207ef79825fcb32c5c972bb2171f394
Vim: Add a Vim plugin, integrating with ALE Some Vim users use the ALE plugin to integrate linters into their editor. Provide quick-lint-js ALE integration with a Vim plugin. I didn't really test the README instructions, so there are likely mistakes.
push time in 7 days