Merge pull request #126 from kitos9112/master

feat: add support for JSON5 language
This commit is contained in:
Alastair Mooney 2022-10-21 09:38:12 +01:00 committed by GitHub
commit 77b8aceed2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 26 deletions

View File

@ -84,6 +84,7 @@ There are additional inputs if you want to be able to assign issues to projects.
* HTML
* Java
* JavaScript
* JSON5
* Julia
* Kotlin
* Less
@ -109,7 +110,7 @@ There are additional inputs if you want to be able to assign issues to projects.
* Vue
* YAML
New languages can easily be added to the `syntax.json` file used by the action to identify TODO comments. When adding languages, follow the structure of existing entries, and use the language name defined by GitHub in [`languages.yml`](https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml). PRs adding new languages are welcome and appreciated. Please add a test for your language in order for your PR to be accepted.
New languages can easily be added to the `syntax.json` file used by the action to identify TODO comments. When adding languages, follow the structure of existing entries, and use the language name defined by GitHub in [`languages.yml`](https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml). PRs adding new languages are welcome and appreciated. Please add a test for your language in order for your PR to be accepted.
## TODO Options
@ -182,7 +183,7 @@ Issues are created whenever the action runs and finds a newly added TODO in the
If you do encounter any problems, please file an issue or submit a PR. Everyone is welcome and encouraged to contribute.
## Running tests locally
## Running tests locally
To run the tests locally, simply run the following in the main repo:
```shell

View File

@ -163,6 +163,15 @@
}
]
},
{
"language": "JSON5",
"markers": [
{
"type": "line",
"pattern": "//"
}
]
},
{
"language": "Julia",
"markers": [
@ -641,4 +650,4 @@
}
]
}
]
]

View File

@ -63,7 +63,7 @@ index 525e25d..ba4e68d 100644
-def my_method(arg):
- """
- TODO: Second multiline comment
- also need to be turned into task, and hopefully
- also need to be turned into task, and hopefully
- kept together as one.
- """
- pass
@ -71,7 +71,7 @@ index 525e25d..ba4e68d 100644
-def MyClass:
- '''
- TODO: Third multiline comment
- also need to be turned into task, and hopefully
- also need to be turned into task, and hopefully
- kept together as one.
- '''
- pass
@ -156,7 +156,7 @@ index 0000000..7cccc5b
- # TODO: Hopefully this comment turns into an issue
- print("Hello World")
- #= TODO: Multiline comments
- also need to be turned into task, and hopefully
- also need to be turned into task, and hopefully
- kept together as one.
- =#
diff --git a/tests/example_file.ahk b/src/tests/example_file.ahk
@ -168,7 +168,7 @@ index 0000000..7cccc5b
- ; TODO: Find a better way to manage hotkeys
- ; Maybe just switch to vim??
- #h::
- RegRead, HiddenFiles_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
- RegRead, HiddenFiles_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
diff --git a/tests/example_file.hbs b/src/tests/example_file.hbs
new file mode 100644
index 0000000..7cccc5b
@ -176,7 +176,7 @@ index 0000000..7cccc5b
+++ b/src/tests/example_file.hbs
@@ -0,0 +1,2 @@
- <!-- TODO: Hopefully this comment turns into a todo issue -->
- {{!
- {{!
- TODO: Make a handlebar templtate
- This is really just a test, but hopefully this works~!
- }}
@ -192,7 +192,7 @@ index 0000000..7cccc5b
- #+end_src
- #+begin_comment
- TODO: Multiline comments
- also need to be turned into todos, and hopefully
- also need to be turned into todos, and hopefully
- kept together as one todo
- #+end_comment
diff --git a/tests/example_file.scss b/tests/example_file.scss
@ -205,9 +205,9 @@ index 525e25d..ba4e68d 100644
- font-weight: bold;
- .my-second-class {
- /* TODO: Multiline comments
- * also need to be turned into todos, and hopefully
- * also need to be turned into todos, and hopefully
- * kept together as one todo
- */
- */
- text-align: center;
- }
-}
@ -277,4 +277,11 @@ index 525e25d..ba4e68d 100644
-
-TODO: Create an issue for TODO
--}
-sum a b = a + b
-sum a b = a + b
diff --git a/tests/config.json5 b/tests/config.json5
index 0000000..525e25d 100644
--- a/tests/config.json5
+++ b/tests/config.json5
@@ -0,0 +0,1 @@
- // TODO: Delete this line from the codebase

View File

@ -85,7 +85,7 @@ index 0000000..0ce9b1a
+++ b/src/Swarm/Game/example.hs
@@ -0,0 +1,14 @@
+-- | Standard devices that are always installed.
+--
+--
+-- TODO: Remove standard devices
+-- In the future, make a way to build these and just start the base
+-- out with a large supply of each?
@ -184,7 +184,7 @@ index 0000000..7cccc5b
+ # TODO: Hopefully this comment turns into an issue
+ print("Hello World")
+ #= TODO: Multiline comments
+ also need to be turned into task, and hopefully
+ also need to be turned into task, and hopefully
+ kept together as one.
+ =#
diff --git a/tests/example_file.ahk b/src/tests/example_file.ahk
@ -196,7 +196,7 @@ index 0000000..7cccc5b
+ ; TODO: Find a better way to manage hotkeys
+ ; Maybe just switch to vim??
+ #h::
+ RegRead, HiddenFiles_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
+ RegRead, HiddenFiles_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
diff --git a/tests/example_file.hbs b/src/tests/example_file.hbs
new file mode 100644
index 0000000..7cccc5b
@ -204,7 +204,7 @@ index 0000000..7cccc5b
+++ b/src/tests/example_file.hbs
@@ -0,0 +1,2 @@
+ <!-- TODO: Hopefully this comment turns into a todo issue -->
+ {{!
+ {{!
+ TODO: Make a handlebar templtate
+ This is really just a test, but hopefully this works~!
+ }}
@ -220,7 +220,7 @@ index 0000000..7cccc5b
+ #+end_src
+ #+begin_comment
+ TODO: Multiline comments
+ also need to be turned into todos, and hopefully
+ also need to be turned into todos, and hopefully
+ kept together as one todo
+ #+end_comment
diff --git a/tests/example_file.scss b/src/tests/example_file.scss
@ -234,9 +234,9 @@ index 0000000..7cccc5b
+ font-weight: bold;
+ .my-second-class {
+ /* TODO: Multiline comments
+ * also need to be turned into todos, and hopefully
+ * also need to be turned into todos, and hopefully
+ * kept together as one todo
+ */
+ */
+ text-align: center;
+ }
+}
@ -259,7 +259,7 @@ index 0000000..7cccc5b
+++ b/src/tests/example_file.md
@@ -0,0 +1,7 @@
+ {/* TODO: Hopefully this comment turns into a todo issue */}
+ {/*
+ {/*
+ TODO:Multiline comments
+ also need to be turned into todos, and hopefully
+ kept together as one todo
@ -272,7 +272,7 @@ index 0000000..7cccc5b
+++ b/src/tests/example_file.mdx
@@ -0,0 +1,7 @@
+ {/* TODO: Hopefully this comment turns into a todo issue */}
+ {/*
+ {/*
+ TODO:Multiline comments
+ also need to be turned into todos, and hopefully
+ kept together as one todo
@ -292,3 +292,17 @@ index 0000000..525e25d
+ # This function should probably do something more interesting
+ # labels: help wanted
+}
diff --git a/tests/config.json5 b/tests/config.json5
new file mode 100644
index 0000000..525e25d
--- /dev/null
+++ b/tests/config.json5
@@ -0,0 +0,8 @@
+{
+ "myConfig": [
+ // GitRepository where 'Git release/tag' matches 'Helm' version
+ "itIsWonderful",
+ // TODO: Delete this line from the codebase
+ "butItHasSomePendingActivities"
+ ]
+}

View File

@ -17,7 +17,7 @@ class NewIssueTests(unittest.TestCase):
def setUp(self):
diff_file = open('tests/test_new.diff', 'r')
parser = TodoParser()
with open('syntax.json', 'r') as syntax_json:
with open('syntax.json', 'r') as syntax_json:
parser.syntax_dict = json.load(syntax_json)
self.raw_issues = parser.parse(diff_file)
@ -33,6 +33,9 @@ class NewIssueTests(unittest.TestCase):
def test_java_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'java'), 2)
def test_json5_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 1)
def test_ruby_issues(self):
# Includes 2 tests for Crystal.
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'ruby'), 5)
@ -66,7 +69,7 @@ class NewIssueTests(unittest.TestCase):
def test_md_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 6)
def test_r_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'r'), 2)
@ -79,7 +82,7 @@ class ClosedIssueTests(unittest.TestCase):
def setUp(self):
diff_file = open('tests/test_closed.diff', 'r')
parser = TodoParser()
with open('syntax.json', 'r') as syntax_json:
with open('syntax.json', 'r') as syntax_json:
parser.syntax_dict = json.load(syntax_json)
self.raw_issues = parser.parse(diff_file)
@ -111,6 +114,9 @@ class ClosedIssueTests(unittest.TestCase):
def test_julia_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'julia'), 2)
def test_json5_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'javascript'), 1)
def test_autohotkey_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'autohotkey'), 1)
@ -141,7 +147,7 @@ class IgnorePatternTests(unittest.TestCase):
def test_single_ignore(self):
os.environ['INPUT_IGNORE'] = '.*\\.java'
parser = TodoParser()
with open('syntax.json', 'r') as syntax_json:
with open('syntax.json', 'r') as syntax_json:
parser.syntax_dict = json.load(syntax_json)
diff_file = open('tests/test_closed.diff', 'r')
self.raw_issues = parser.parse(diff_file)
@ -156,7 +162,7 @@ class IgnorePatternTests(unittest.TestCase):
def test_multiple_ignores(self):
os.environ['INPUT_IGNORE'] = '.*\\.java, tests/example-file\\.php'
parser = TodoParser()
with open('syntax.json', 'r') as syntax_json:
with open('syntax.json', 'r') as syntax_json:
parser.syntax_dict = json.load(syntax_json)
diff_file = open('tests/test_closed.diff', 'r')
self.raw_issues = parser.parse(diff_file)