Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensionless files support + makefile language support added #180

Merged
merged 3 commits into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ These will be applied automatically to every issue, but will be overrode by any
- Julia
- Kotlin
- Less
- Makefile
- Markdown
- Nix
- Objective-C
Expand Down
24 changes: 18 additions & 6 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,16 +550,28 @@ def parse(self, diff_file):
issue.org_projects = separated_org_projects
return issues

def _get_language_details(self, language_name, attribute, value):
"""Try and get the Markdown language and comment syntax
data based on a specified attribute of the language."""
attributes = [at.lower() for at in self.languages_dict[language_name][attribute]]
if value.lower() in attributes:
for syntax_details in self.syntax_dict:
if syntax_details['language'] == language_name:
return syntax_details['markers'], self.languages_dict[language_name]['ace_mode']
return None, None

def _get_file_details(self, file):
"""Try and get the Markdown language and comment syntax data for the given file."""
file_name, extension = os.path.splitext(os.path.basename(file))
for language_name in self.languages_dict:
if 'extensions' in self.languages_dict[language_name]:
language_extensions = [ex.lower() for ex in self.languages_dict[language_name]['extensions']]
if extension.lower() in language_extensions:
for syntax_details in self.syntax_dict:
if syntax_details['language'] == language_name:
return syntax_details['markers'], self.languages_dict[language_name]['ace_mode']
if extension != "" and 'extensions' in self.languages_dict[language_name]:
syntax_details, ace_mode = self._get_language_details(language_name, 'extensions', extension)
if syntax_details is not None and ace_mode is not None:
return syntax_details, ace_mode
elif 'filenames' in self.languages_dict[language_name]:
syntax_details, ace_mode = self._get_language_details(language_name, 'filenames', file_name)
if syntax_details is not None and ace_mode is not None:
return syntax_details, ace_mode
return None, None

def _extract_issue_if_exists(self, comment, marker, code_block):
Expand Down
9 changes: 9 additions & 0 deletions syntax.json
Original file line number Diff line number Diff line change
Expand Up @@ -764,5 +764,14 @@
}
}
]
},
{
"language": "Makefile",
"markers": [
{
"type": "line",
"pattern": "#"
}
]
}
]
19 changes: 18 additions & 1 deletion tests/test_closed.diff
Original file line number Diff line number Diff line change
Expand Up @@ -374,4 +374,21 @@ index 0000000..a6c6cb0
- /*
- TODO fill this with something useful
- */
}
}
diff --git a/tests/Makefile b/tests/Makefile
index 2996176..7545ccf 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,12 +1,9 @@
-# TODO change name.
NAME = asm

-# TODO source files must be explicitly named.
SRC = $(shell find mandatory/src -name "*.asm")
OBJ = $(patsubst src/%.asm, obj/%.o, $(SRC))
.PHONY: all
all: $(NAME)
$(NAME): $(OBJ)
- # TODO create the directory.
$(AR) rc $@ $(OBJ)

20 changes: 19 additions & 1 deletion tests/test_new.diff
Original file line number Diff line number Diff line change
Expand Up @@ -416,4 +416,22 @@ index 0000000..a6c6cb0
+ TODO fill this with something useful
+ */
+}
+
+
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..2996176
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,12 @@
+# TODO change name.
+NAME = asm
+
+# TODO source files must be explicitly named.
+SRC = $(shell find mandatory/src -name "*.asm")
+OBJ = $(patsubst src/%.asm, obj/%.o, $(SRC))
+.PHONY: all
+all: $(NAME)
+$(NAME): $(OBJ)
+ # TODO create the directory.
+ $(AR) rc $@ $(OBJ)
+
6 changes: 6 additions & 0 deletions tests/test_todo_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ def test_scss_issues(self):
def test_twig_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2)

def test_makefile_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'makefile'), 3)

def test_md_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 8)

Expand Down Expand Up @@ -159,6 +162,9 @@ def test_scss_issues(self):
def test_twig_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'twig'), 2)

def test_makefile_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'makefile'), 3)

def test_md_issues(self):
self.assertEqual(count_issues_for_file_type(self.raw_issues, 'markdown'), 8)

Expand Down