77)
88
99const (
10- universion = "1.3.3.7 "
10+ universion = "1.3.307 "
1111 uni = "*.uni"
1212 corn = "*.corn"
1313)
@@ -23,6 +23,8 @@ type languageArgs struct {
2323 versionParam string
2424 versionRegex string
2525 missingCommandText string
26+ urlTemplate string
27+ enableHyperlink bool
2628}
2729
2830func (l * languageArgs ) hasvalue (value string , list []string ) bool {
@@ -45,8 +47,9 @@ func bootStrapLanguageTest(args *languageArgs) *language {
4547 }
4648 props := & properties {
4749 values : map [Property ]interface {}{
48- DisplayVersion : args .displayVersion ,
49- DisplayMode : args .displayMode ,
50+ DisplayVersion : args .displayVersion ,
51+ DisplayMode : args .displayMode ,
52+ EnableHyperlink : args .enableHyperlink ,
5053 },
5154 }
5255 if args .missingCommandText != "" {
@@ -58,7 +61,10 @@ func bootStrapLanguageTest(args *languageArgs) *language {
5861 extensions : args .extensions ,
5962 commands : args .commands ,
6063 versionParam : args .versionParam ,
61- versionRegex : args .versionRegex ,
64+ version : & version {
65+ regex : args .versionRegex ,
66+ urlTemplate : args .urlTemplate ,
67+ },
6268 }
6369 return l
6470}
@@ -222,3 +228,75 @@ func TestLanguageEnabledMissingCommandCustomText(t *testing.T) {
222228 assert .True (t , lang .enabled ())
223229 assert .Equal (t , args .missingCommandText , lang .string (), "unicorn is available and uni and corn files are found" )
224230}
231+
232+ func TestLanguageHyperlinkEnabled (t * testing.T ) {
233+ args := & languageArgs {
234+ versionParam : "--version" ,
235+ commands : []string {"uni" , "corn" },
236+ enabledCommands : []string {"corn" },
237+ extensions : []string {uni , corn },
238+ versionRegex : `(?P<version>((?P<major>[0-9]+).(?P<minor>[0-9]+).(?P<patch>[0-9]+)))` ,
239+ urlTemplate : "[%s](https://unicor.org/doc/%s.%s.%s)" ,
240+ version : universion ,
241+ enabledExtensions : []string {corn },
242+ displayVersion : true ,
243+ enableHyperlink : true ,
244+ }
245+ lang := bootStrapLanguageTest (args )
246+ assert .True (t , lang .enabled ())
247+ assert .Equal (t , "[1.3.307](https://unicor.org/doc/1.3.307)" , lang .string ())
248+ }
249+
250+ func TestLanguageHyperlinkEnabledWrongRegex (t * testing.T ) {
251+ args := & languageArgs {
252+ versionParam : "--version" ,
253+ commands : []string {"uni" , "corn" },
254+ enabledCommands : []string {"corn" },
255+ extensions : []string {uni , corn },
256+ versionRegex : `wrong` ,
257+ urlTemplate : "[%s](https://unicor.org/doc/%s.%s.%s)" ,
258+ version : universion ,
259+ enabledExtensions : []string {corn },
260+ displayVersion : true ,
261+ enableHyperlink : true ,
262+ }
263+ lang := bootStrapLanguageTest (args )
264+ assert .True (t , lang .enabled ())
265+ assert .Equal (t , "" , lang .string ())
266+ }
267+
268+ func TestLanguageHyperlinkEnabledLessParamInTemplate (t * testing.T ) {
269+ args := & languageArgs {
270+ versionParam : "--version" ,
271+ commands : []string {"uni" , "corn" },
272+ enabledCommands : []string {"corn" },
273+ extensions : []string {uni , corn },
274+ versionRegex : `(?P<version>((?P<major>[0-9]+).(?P<minor>[0-9]+).(?P<patch>[0-9]+)))` ,
275+ urlTemplate : "[%s](https://unicor.org/doc/%s)" ,
276+ version : universion ,
277+ enabledExtensions : []string {corn },
278+ displayVersion : true ,
279+ enableHyperlink : true ,
280+ }
281+ lang := bootStrapLanguageTest (args )
282+ assert .True (t , lang .enabled ())
283+ assert .Equal (t , "[1.3.307](https://unicor.org/doc/1)" , lang .string ())
284+ }
285+
286+ func TestLanguageHyperlinkEnabledMoreParamInTemplate (t * testing.T ) {
287+ args := & languageArgs {
288+ versionParam : "--version" ,
289+ commands : []string {"uni" , "corn" },
290+ enabledCommands : []string {"corn" },
291+ extensions : []string {uni , corn },
292+ versionRegex : `(?P<version>((?P<major>[0-9]+).(?P<minor>[0-9]+).(?P<patch>[0-9]+)))` ,
293+ urlTemplate : "[%s](https://unicor.org/doc/%s.%s.%s.%s)" ,
294+ version : universion ,
295+ enabledExtensions : []string {corn },
296+ displayVersion : true ,
297+ enableHyperlink : true ,
298+ }
299+ lang := bootStrapLanguageTest (args )
300+ assert .True (t , lang .enabled ())
301+ assert .Equal (t , "1.3.307" , lang .string ())
302+ }
0 commit comments