@@ -78,9 +78,19 @@ def errorMissingScalaVersion()
7878 "tab labels: #{ joinScalaVersions ( ) } " )
7979 end
8080
81+ def errorDuplicateTab ( tab )
82+ SyntaxError . new ( "Duplicate tab label '#{ tab . label } ' in tabs '#{ @name } '" )
83+ end
84+
85+ def errorScalaVersionDefault ( tab )
86+ SyntaxError . new (
87+ "Scala version tab label '#{ tab . label } ' should not be default for tabs '#{ @name } ' " +
88+ "with class=tabs-scala-version" )
89+ end
90+
8191 allTabs . each do | tab |
8292 if seenTabs . include? tab . label
83- raise SyntaxError . new ( "Duplicate tab label ' #{ tab . label } ' in tabs ' #{ @name } '" )
93+ raise errorDuplicateTab ( tab )
8494 end
8595 seenTabs . push tab . label
8696 if tab . defaultTab
@@ -89,8 +99,12 @@ def errorMissingScalaVersion()
8999
90100 isScalaTab = Tabs ::ScalaVersions . include? tab . label
91101
92- if @is_scala_tabs and !isScalaTab
93- raise errorNonScalaVersion ( tab )
102+ if @is_scala_tabs
103+ if !isScalaTab
104+ raise errorNonScalaVersion ( tab )
105+ elsif tab . defaultTab
106+ raise errorScalaVersionDefault ( tab )
107+ end
94108 elsif !@is_scala_tabs and isScalaTab
95109 raise errorScalaVersionWithoutClass ( tab )
96110 end
@@ -101,8 +115,13 @@ def errorMissingScalaVersion()
101115 end
102116
103117 if !foundDefault and allTabs . length > 0
104- # set first tab to default
105- allTabs [ 0 ] . defaultTab = true
118+ if @is_scala_tabs
119+ # set last tab to default ('Scala 3')
120+ allTabs [ -1 ] . defaultTab = true
121+ else
122+ # set first tab to default
123+ allTabs [ 0 ] . defaultTab = true
124+ end
106125 end
107126
108127 currentDirectory = File . dirname ( __FILE__ )
0 commit comments