You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Kousuke Saruta (JIRA)" <ji...@apache.org> on 2014/10/09 12:20:33 UTC
[jira] [Commented] (SPARK-3854) Scala style: require spaces before
`{`
[ https://issues.apache.org/jira/browse/SPARK-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14164978#comment-14164978 ]
Kousuke Saruta commented on SPARK-3854:
---------------------------------------
[~joshrosen] I tried to write code to check spaces before '{' like as follows.
{code}
package org.apache.spark.scalastyle
import org.scalastyle.{PositionError, ScalariformChecker, ScalastyleError}
import scala.collection.mutable.{ListBuffer, Queue}
import scalariform.lexer.{Token, Tokens}
import scalariform.lexer.Tokens._
import scalariform.parser.CompilationUnit
class SparkSpaceBeforeLeftBraceChecker extends ScalariformChecker {
val errorKey: String = "insert.a.single.space.before.left.brace"
val rememberQueue: Queue[Token] = Queue[Token]()
// The list of disallowed tokens before left brace without single space.
val disallowedTokensBeforeLBrace = Seq (
ARROW, ELSE, OP, RPAREN, TRY, MATCH, NEW, DO, FINALLY, PACKAGE, RETURN, THROW, YIELD, VARID
)
override def verify(ast: CompilationUnit): List[ScalastyleError] = {
var list: ListBuffer[ScalastyleError] = new ListBuffer[ScalastyleError]
for (token <- ast.tokens) {
rememberToken(token)
if (isLBrace(token) &&
isTokenAfterSpecificTokens(token) &&
!hasSingleWhiteSpaceBefore(token)) {
list += new PositionError(token.offset)
}
}
list.toList
}
private def rememberToken(x: Token) = {
rememberQueue.enqueue(x)
if (rememberQueue.size > 2) {
rememberQueue.dequeue
}
x
}
private def isTokenAfterSpecificTokens(x: Token) = {
val previousToken = rememberQueue.head
disallowedTokensBeforeLBrace.contains(previousToken.tokenType)
}
private def isLBrace(x: Token) =
x.tokenType == Tokens.LBRACE
private def hasSingleWhiteSpaceBefore(x: Token) =
x.associatedWhitespaceAndComments.whitespaces.size == 1
}
{code}
How does this look?
> Scala style: require spaces before `{`
> --------------------------------------
>
> Key: SPARK-3854
> URL: https://issues.apache.org/jira/browse/SPARK-3854
> Project: Spark
> Issue Type: Sub-task
> Components: Project Infra
> Reporter: Josh Rosen
>
> We should require spaces before opening curly braces. This isn't in the style guide, but it probably should be:
> {code}
> // Correct:
> if (true) {
> println("Wow!")
> }
> // Incorrect:
> if (true){
> println("Wow!")
> }
> {code}
> See https://github.com/apache/spark/pull/1658#discussion-diff-18611791 for an example "in the wild."
> {{git grep "){"}} shows only a few occurrences of this style.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org