feat: finish multi lnaguage support

This commit is contained in:
Bogdan Lyashenko
2019-02-09 21:13:41 +01:00
parent eed383522b
commit 8155ed3207
20 changed files with 202 additions and 2 deletions

View File

@@ -0,0 +1,9 @@
const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs');
const CPP_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/;
const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(CPP_COMMENT_REGEX));
// replace with own implementation if needed
module.exports = {
getCrumbs
};

View File

@@ -0,0 +1,7 @@
const defaultDependencies = require('../default/dependencies');
// replace with own implementation if needed
module.exports = {
getImports: defaultDependencies.getImports,
getDependencies: defaultDependencies.getDependencies
};

View File

@@ -97,8 +97,12 @@ const setupGetCrumbs = getCommentsFromCode => (fileCode, path) => {
}
};
const DEFAULT_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/;
const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(DEFAULT_COMMENT_REGEX));
module.exports = {
getCrumbs: setupGetCrumbs(() => []), // TODO: add regexp for // comment
getCrumbs,
setupdGetCommentsFromCode,
setupGetCrumbs,

View File

@@ -4,14 +4,30 @@
module.exports = {
detectLanguage: entryPoint => {
const list = [
{
language: 'cpp',
extensions: /.(cpp|c\+\+|cc|cp|cxx|h|h\+\+|hh|hpp|hxx|inc|inl|ino|ipp|re|tcc|tpp)$/
},
{
language: 'java',
extensions: /.(java|jsp)$/
},
{
language: 'javascript',
extensions: /\.(js|jsx|_js|bones|es|es6|frag|gs|jake|jsb|jscad|jsfl|jsm|jss|mjs|njs|pac|sjs|ssjs|xsjs|xsjslib)$/
},
{
language: 'php',
extensions: /.(php|aw|ctp|fcgi|inc|php3|php4|php5|phps|phpt)$/
},
{
language: 'python',
extensions: /\.(py|bzl|cgi|fcgi|gyp|gypi|lmi|py3|pyde|pyi|pyp|pyt|pyw|rpy|spec|tac|wsgi|xpy)$/
}
},
{
language: 'typescript',
extensions: /.(ts|tsx)$/
},
];
const detection = list.find(item => item.extensions.test(entryPoint));
@@ -19,14 +35,30 @@ module.exports = {
},
getLanguageParsers: (language = 'default') => {
const map = {
cpp: {
codecrumbsParser: require('./cpp/codecrumbs'),
dependenciesParser: require('./cpp/dependencies')
},
java: {
codecrumbsParser: require('./java/codecrumbs'),
dependenciesParser: require('./java/dependencies')
},
javascript: {
codecrumbsParser: require('./javascript/codecrumbs'),
dependenciesParser: require('./javascript/dependencies')
},
php: {
codecrumbsParser: require('./php/codecrumbs'),
dependenciesParser: require('./php/dependencies')
},
python: {
codecrumbsParser: require('./python/codecrumbs'),
dependenciesParser: require('./python/dependencies')
},
typescript: {
codecrumbsParser: require('./typescript/codecrumbs'),
dependenciesParser: require('./typescript/dependencies')
},
default: {
codecrumbsParser: require('./default/codecrumbs'),
dependenciesParser: require('./default/dependencies')

View File

@@ -0,0 +1,9 @@
const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs');
const JAVA_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/;
const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(JAVA_COMMENT_REGEX));
// replace with own implementation if needed
module.exports = {
getCrumbs
};

View File

@@ -0,0 +1,7 @@
const defaultDependencies = require('../default/dependencies');
// replace with own implementation if needed
module.exports = {
getImports: defaultDependencies.getImports,
getDependencies: defaultDependencies.getDependencies
};

View File

@@ -0,0 +1,9 @@
const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs');
const PHP_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/;
const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(PHP_COMMENT_REGEX));
// replace with own implementation if needed
module.exports = {
getCrumbs
};

View File

@@ -0,0 +1,7 @@
const defaultDependencies = require('../default/dependencies');
// replace with own implementation if needed
module.exports = {
getImports: defaultDependencies.getImports,
getDependencies: defaultDependencies.getDependencies
};

View File

@@ -0,0 +1,9 @@
const { setupGetCrumbs, setupdGetCommentsFromCode } = require('../default/codecrumbs');
const TYPE_SCRIPT_COMMENT_REGEX = /^([^\/\/]*)\/\/(.*)$/;
const getCrumbs = setupGetCrumbs(setupdGetCommentsFromCode(TYPE_SCRIPT_COMMENT_REGEX));
// replace with own implementation if needed
module.exports = {
getCrumbs
};

View File

@@ -0,0 +1,7 @@
const defaultDependencies = require('../default/dependencies');
// replace with own implementation if needed
module.exports = {
getImports: defaultDependencies.getImports,
getDependencies: defaultDependencies.getDependencies
};