Skip to content

Commit

Permalink
Merge pull request #180 from AingeruAlvarezSanchez/makefile-language-…
Browse files Browse the repository at this point in the history
…support

Extensionless files support + makefile language support added
  • Loading branch information
alstr committed Mar 22, 2024
2 parents 0736139 + 6dfbdc5 commit dc6eec7
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 8 deletions.
1 change: 1 addition & 0 deletions README.md
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
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
Expand Up @@ -764,5 +764,14 @@
}
}
]
},
{
"language": "Makefile",
"markers": [
{
"type": "line",
"pattern": "#"
}
]
}
]
19 changes: 18 additions & 1 deletion tests/test_closed.diff
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
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
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

0 comments on commit dc6eec7

Please sign in to comment.