diff options
| author | ruki <[email protected]> | 2017-01-05 15:41:13 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-01-06 17:20:09 +0800 |
| commit | ac637c7c104bf2bd9269379b15184b44d03e75dd (patch) | |
| tree | 010c27a3350d17431a686ab52d7e5132fb4067df /xmake/core/language/language.lua | |
| parent | 61465cbf8df493c13c0adf2adfc985b679933bdd (diff) | |
add scanner and fix run target
Diffstat (limited to 'xmake/core/language/language.lua')
| -rw-r--r-- | xmake/core/language/language.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/xmake/core/language/language.lua b/xmake/core/language/language.lua index ad5c64367..53daeb093 100644 --- a/xmake/core/language/language.lua +++ b/xmake/core/language/language.lua @@ -249,5 +249,32 @@ function language.apis() return apis end +-- get language sourcekinds +function language.sourcekinds() + + -- attempt to get it from cache + if language._SOURCEKINDS then + return language._SOURCEKINDS + end + + -- load all languages + local languages, errors = language.load() + if not languages then + os.raise(errors) + end + + -- merge apis for each language + local sourcekinds = {} + for name, instance in pairs(languages) do + table.join2(sourcekinds, table.wrap(instance:sourcekinds())) + end + + -- cache it + language._SOURCEKINDS = table.unique(sourcekinds) + + -- ok + return language._SOURCEKINDS +end + -- return module return language |
