Commit Graph

537 Commits

Author SHA1 Message Date
4a4b29796b Merge pull request #62 from look/look/langinfo
Expose `LanguageInfo` with all Linguist data
2021-11-14 17:12:03 +01:00
03b31eb4ce Update internal/code-generator/main.go
Co-authored-by: Lauris BH <lauris@nix.lv>
2021-10-13 10:30:19 -07:00
57c5940dbe Update common.go
Thanks @lafriks for catching this!

Co-authored-by: Lauris BH <lauris@nix.lv>
2021-10-12 16:20:14 -07:00
02878b9c9f Rename CodemirrorMode to CodeMirrorMode
It is a bit of a Rubyism to translate "CodeMirror Mode" into "codemirror_mode".
This is more in line with Go practices.
2021-10-12 16:18:33 -07:00
b6b72c6c08 Add documentation to LanguageInfo struct fields
These are adapted from https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
2021-10-12 16:13:59 -07:00
6212f1fcb4 Remove name -> LanguageInfo mapping per code review
The GetLanguageInfo method is now implemented in terms of GetLanguageInfoByID.
This is possible because you can use GetLanguageID to get the ID for a language.
2021-10-12 13:29:39 -07:00
6279d53f66 clean up whitespace in template 2021-10-11 14:20:25 -07:00
4bde6c61a1 remove obsolete TODO 2021-10-11 14:06:29 -07:00
b248b21349 Expose LanguageInfo with all Linguist data
As discussed in https://github.com/go-enry/go-enry/issues/54, this provides an
API for accessing a LanguageInfo struct which is populated with all the data
from the Linguist YAML source file. Functions are provided to access the
LanguageInfo by name or ID.

The other top-level functions like GetLanguageExtensions, GetLanguageGroup, etc.
could in principle be implemented using this structure, which would simplify the
code generation. But that would be a big change so I didn't do any of that.
Perhaps in the next major version something like that would make sense.
2021-10-11 13:32:29 -07:00
adb553dc50 Merge pull request #60 from lafriks-fork/feat/linguist_v7.16.1
Update to Linguist v7.16.1
2021-09-26 11:20:01 +02:00
0affa3ccca Update to Linguist v7.16.1 2021-09-25 23:57:50 +03:00
0ae768336f Merge pull request #58 from lafriks-fork/feat/improve_shebang
Improve env shebang parsing to detect correct interpreter
2021-09-25 22:55:28 +02:00
effee97b6a Merge pull request #59 from lafriks-fork/feat/golang_v1.17
ci: update go versions
2021-09-25 22:53:30 +02:00
2d3e1ea236 ci: update go versions 2021-09-25 19:28:10 +03:00
4686615d9e Improve shebang parsing to detect correct interpreter 2021-09-25 19:24:44 +03:00
7c24e3d5d2 Merge pull request #56 from rykov/fix-shebang-env
Fixed GetLanguagesByShebang for paths with “env”
2021-06-25 17:46:15 +02:00
58f8dccbcf Fixed GetLanguagesByShebang for paths with “env” 2021-06-19 00:49:05 +08:00
335b4a64d8 Merge pull request #53 from go-enry/mcuadros-patch-1
ci: update go version
2021-06-18 16:45:29 +02:00
be3b43a42e Merge pull request #52 from look/look/update-linguist-again
Update generated code for Linguist 7.14.0
2021-06-18 16:45:05 +02:00
6511190bd8 ci: update go version 2021-05-18 04:00:27 +02:00
a81924ae12 Update README 2021-04-26 15:41:10 -07:00
dfb8041dcc Update generated code for Linguist 7.14.0 2021-04-26 09:36:25 -07:00
a724bce4a1 Merge pull request #49 from go-enry/bzz-doc-facelift
Docs: mention Rust bindings and IsGenerated
2021-04-24 09:01:10 +02:00
2ddd4985bc doc: mention Rust bindings and IsGenerated 2021-04-24 08:56:06 +02:00
7168084e5e Merge pull request #44 from zeripath/speed-up-is-vendor
Make IsVendor quicker
2021-04-24 08:35:22 +02:00
0a9864e6ec Merge pull request #46 from look/look/add-language-id
Add GetLanguageID function
2021-04-24 08:32:32 +02:00
20726a1de3 Make IsVendor quicker
Although iterating across the regexps is quicker than naively concatenating them,
it is still quite slow.

This PR proposes a slightly cleverer solution.

First instead of just concatenating with groups this PR uses non-capturing groups.
This speeds up the regexp processing.

Secondly we group the regexps in to 3 groups - those that have to be at the start,
those that are segments or at the start and the rest. This makes a considerable speed
improvement.

Thirdly the regexps are sorted within those groups - which also speeds things up.

All in all for a non-vendored file this makes IsVendor around twice as fast.

Signed-off-by: Andrew Thornton <art27@cantab.net>
2021-04-23 10:18:28 +01:00
cabfdaffc0 Update GetLanguageID to return a found boolean per code review 2021-04-22 16:55:42 -07:00
d2d4c32d4d Extend & simplify the test for IsVendor (#45) 2021-04-22 22:24:27 +02:00
b60e5c6f5a Merge pull request #47 from look/look/mimic-linguist-detect
Rewrite GetLanguages to work like Linguist.detect
2021-04-22 21:38:22 +02:00
11cbde8956 Merge pull request #48 from look/look/rm-travis
Remove .travis.yml
2021-04-17 01:10:19 +02:00
ed7a1e67b4 Remove .travis.yml
This file doesn't appear to be used any more, since the builds are run using
GitHub Actions.

This file is affected by the recent Codecov Bash Uploader exploit[1], but since it
hasn't been running, I don't think the project is affected.

[1] https://about.codecov.io/security-update/
2021-04-15 15:11:39 -07:00
bf7167fc44 Rewrite GetLanguages to work like Linguist.detect
Prior to this change, GetLanguages collected all candidate languages from each
strategy to pass to the next strategy (without de-duplicating them). Linguist
only uses the previous strategy's candidates for the next strategy. Also, it
would overwrite languages with nil if a strategy returned that, so you could get
into a situation where you go from multiple languages to no language.

See the Ruby code for details: aad49acc06/lib/linguist.rb (L14-L49)

This addresses https://github.com/src-d/enry/issues/207 because GetLanguages
should not return all candidates detected, otherwise it would work differently
than Linguist.
2021-04-13 12:04:47 -07:00
eb043e80a8 Add GetLanguageID function
The Linguist-defined language IDs are important to our use case because they are
used as database identifiers. This adds a new generator to extract the language
IDs into a map and uses that to implement GetLanguageID.

Because one language has the ID 0, there is no way to tell if a language name is
found or not. If desired, we could add this by returning (string, bool) from
GetLanguageID. But none of the other functions that take language names do this,
so I didn't want to introduce it here.
2021-04-13 11:49:21 -07:00
7f5d84ad74 Merge pull request #43 from lafriks-fork/feat/v7.13.0
Sync with Liguist v7.13.0
2021-03-12 08:02:57 +01:00
323d739170 Fix test 2021-03-07 18:34:08 +02:00
c40b34c351 Sync with Liguist v7.13.0 2021-03-07 18:02:04 +02:00
1ad7deb89e Merge pull request #42 from lafriks-fork/feat/sync_v7.12.2
Sync with github/linguist version v7.12.2
2021-03-06 15:35:46 +01:00
497e2f85d3 Sync with github/linguist version v7.12.2 2021-01-17 14:10:38 +02:00
3faf9450da Merge pull request #40 from lafriks-fork/feat/strategy_xml
Add XML strategy
2020-12-02 00:10:52 +01:00
0596fda1a4 Fix strategy order 2020-11-26 13:56:25 +02:00
6edbff3dec Merge pull request #38 from softagram/fix-readme-cmd
Fix typo in the pip command in README.md
2020-11-26 12:46:28 +01:00
8de21f365e Merge pull request #39 from lafriks-fork/feat/sync_7.12.1
Sync with linguist 7.12.1
2020-11-26 12:38:46 +01:00
8ac98f4b77 Update readme 2020-11-15 15:48:03 +02:00
6d8f15af5b Add XML strategy 2020-11-15 15:43:37 +02:00
289ac3d9f0 Sync with linguist 7.12.1 2020-11-15 14:32:56 +02:00
8d83871580 Fix typo in the pip command in README.md 2020-11-14 23:29:53 +02:00
0fb4b8a768 Merge pull request #35 from lafriks-fork/feat/manpage_strategy
Add support for Roff man pages filenames
2020-10-22 00:10:39 +02:00
7688057adc Merge pull request #37 from lafriks-fork/sync_7_11_1
sync to the latest github/linguist v7.11.1
2020-10-22 00:08:04 +02:00
bc76dd38b0 sync to the latest github/linguist v7.11.1 2020-10-12 12:32:48 +03:00