Skip to main content

Scala Support

Brf.it provides full support for Scala with Tree-sitter based parsing.

Supported Features

  • Class definitions
  • Case classes
  • Object definitions
  • Trait definitions
  • Function definitions
  • Type aliases
  • Package declarations
  • Import statements (with --include-imports)
  • Scaladoc comments

Example

Input

package com.example.users

import scala.concurrent.Future

/** Represents a system user */
case class User(
id: Long,
name: String,
email: String
)

/** Trait for user repository implementations */
trait UserRepository {
/** Find a user by ID
* @param id the user ID
* @return the user if found
*/
def findById(id: Long): Future[Option[User]]

/** Save a user
* @param user the user to save
* @return the saved user
*/
def save(user: User): Future[User]
}

/** Service for user operations */
class UserService(repository: UserRepository) {
def getUser(id: Long): Future[Option[User]] = {
repository.findById(id)
}

def createUser(name: String, email: String): Future[User] = {
val user = User(id = 0L, name = name, email = email)
repository.save(user)
}
}

Output (Brf.it)

// com/example/users/User.scala
package com.example.users
import scala.concurrent.Future

case class User(id: Long, name: String, email: String)

trait UserRepository {
def findById(id: Long): Future[Option[User]]
def save(user: User): Future[User]
}

class UserService(repository: UserRepository) {
def getUser(id: Long): Future[Option[User]]
def createUser(name: String, email: String): Future[User]
}

Extensions

Files with .scala and .sc extensions are processed.