Skip to content

Commit 8733a88

Browse files
committed
added support for non parsers languages
1 parent 18e0e7e commit 8733a88

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

codetide/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from codetide.core.common import readFile, writeFile
88
from codetide.core.logs import logger
99

10+
from codetide.parsers.generic_parser import GenericParser
1011
from codetide.parsers import BaseParser
1112
from codetide import parsers
1213

@@ -224,7 +225,7 @@ def _initialize_parsers(
224225
"""Initialize parsers for all required languages."""
225226
for language in languages:
226227
if language not in self._instantiated_parsers:
227-
parser_obj = getattr(parsers, self.parserId(language), None)
228+
parser_obj = getattr(parsers, self.parserId(language), GenericParser)
228229
if parser_obj is not None:
229230
self._instantiated_parsers[language] = parser_obj()
230231
logger.debug(f"Initialized parser for {language}")

codetide/parsers/generic_parser.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from ..core.models import CodeBase, CodeFileModel, ImportStatement
22
from ..parsers.base_parser import BaseParser
3+
from ..core.common import readFile
34

45
from concurrent.futures import ThreadPoolExecutor
56
from typing import List, Optional, Union
@@ -45,17 +46,18 @@ async def parse_file(self, file_path: Union[str, Path], root_path: Optional[Unio
4546
# Use aiofiles or run synchronous file IO in executor
4647
loop = asyncio.get_running_loop()
4748
with ThreadPoolExecutor() as pool:
48-
49+
code = await loop.run_in_executor(pool, readFile, file_path, "rb")
4950
if root_path is not None:
5051
file_path = file_path.relative_to(Path(root_path))
5152

52-
codeFile = await loop.run_in_executor(pool, self.parse_code, file_path)
53+
codeFile = await loop.run_in_executor(pool, self.parse_code, file_path, code)
5354

5455
return codeFile
5556

56-
def parse_code(self, file_path :Path):
57+
def parse_code(self, file_path :Path, code :str):
5758
codeFile = CodeFileModel(
58-
file_path=str(file_path)
59+
file_path=str(file_path),
60+
raw=code
5961
)
6062
return codeFile
6163

0 commit comments

Comments
 (0)