mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-21 18:08:25 +00:00
Update scalafmt settings
This commit is contained in:
@ -30,7 +30,7 @@ object Date {
|
||||
|
||||
sealed trait CalcDirection
|
||||
object CalcDirection {
|
||||
case object Plus extends CalcDirection
|
||||
case object Plus extends CalcDirection
|
||||
case object Minus extends CalcDirection
|
||||
}
|
||||
|
||||
|
@ -14,8 +14,7 @@ import docspell.query.ItemQuery.Expr.NotExpr
|
||||
import docspell.query.ItemQuery.Expr.OrExpr
|
||||
import docspell.query.ItemQuery._
|
||||
|
||||
/** Currently, fulltext in a query is only supported when in "root AND" position
|
||||
*/
|
||||
/** Currently, fulltext in a query is only supported when in "root AND" position */
|
||||
object FulltextExtract {
|
||||
|
||||
sealed trait Result
|
||||
@ -26,18 +25,18 @@ object FulltextExtract {
|
||||
sealed trait FailureResult extends Result
|
||||
object Result {
|
||||
final case class SuccessNoFulltext(query: Expr) extends SuccessResult {
|
||||
val getExprPart = Some(query)
|
||||
val getExprPart = Some(query)
|
||||
val getFulltextPart = None
|
||||
}
|
||||
final case class SuccessNoExpr(fts: String) extends SuccessResult {
|
||||
val getExprPart = None
|
||||
val getExprPart = None
|
||||
val getFulltextPart = Some(fts)
|
||||
}
|
||||
final case class SuccessBoth(query: Expr, fts: String) extends SuccessResult {
|
||||
val getExprPart = Some(query)
|
||||
val getExprPart = Some(query)
|
||||
val getFulltextPart = Some(fts)
|
||||
}
|
||||
final case object TooMany extends FailureResult
|
||||
final case object TooMany extends FailureResult
|
||||
final case object UnsupportedPosition extends FailureResult
|
||||
}
|
||||
|
||||
|
@ -24,13 +24,13 @@ object ItemQuery {
|
||||
|
||||
sealed trait Operator
|
||||
object Operator {
|
||||
case object Eq extends Operator
|
||||
case object Neq extends Operator
|
||||
case object Eq extends Operator
|
||||
case object Neq extends Operator
|
||||
case object Like extends Operator
|
||||
case object Gt extends Operator
|
||||
case object Lt extends Operator
|
||||
case object Gte extends Operator
|
||||
case object Lte extends Operator
|
||||
case object Gt extends Operator
|
||||
case object Lt extends Operator
|
||||
case object Gte extends Operator
|
||||
case object Lte extends Operator
|
||||
}
|
||||
|
||||
sealed trait TagOperator
|
||||
@ -42,34 +42,34 @@ object ItemQuery {
|
||||
sealed trait Attr
|
||||
object Attr {
|
||||
sealed trait StringAttr extends Attr
|
||||
sealed trait DateAttr extends Attr
|
||||
sealed trait IntAttr extends Attr
|
||||
sealed trait DateAttr extends Attr
|
||||
sealed trait IntAttr extends Attr
|
||||
|
||||
case object ItemName extends StringAttr
|
||||
case object ItemSource extends StringAttr
|
||||
case object ItemNotes extends StringAttr
|
||||
case object ItemId extends StringAttr
|
||||
case object Date extends DateAttr
|
||||
case object DueDate extends DateAttr
|
||||
case object ItemName extends StringAttr
|
||||
case object ItemSource extends StringAttr
|
||||
case object ItemNotes extends StringAttr
|
||||
case object ItemId extends StringAttr
|
||||
case object Date extends DateAttr
|
||||
case object DueDate extends DateAttr
|
||||
case object CreatedDate extends DateAttr
|
||||
case object AttachCount extends IntAttr
|
||||
|
||||
object Correspondent {
|
||||
case object OrgId extends StringAttr
|
||||
case object OrgName extends StringAttr
|
||||
case object PersonId extends StringAttr
|
||||
case object OrgId extends StringAttr
|
||||
case object OrgName extends StringAttr
|
||||
case object PersonId extends StringAttr
|
||||
case object PersonName extends StringAttr
|
||||
}
|
||||
|
||||
object Concerning {
|
||||
case object PersonId extends StringAttr
|
||||
case object PersonId extends StringAttr
|
||||
case object PersonName extends StringAttr
|
||||
case object EquipId extends StringAttr
|
||||
case object EquipName extends StringAttr
|
||||
case object EquipId extends StringAttr
|
||||
case object EquipName extends StringAttr
|
||||
}
|
||||
|
||||
object Folder {
|
||||
case object FolderId extends StringAttr
|
||||
case object FolderId extends StringAttr
|
||||
case object FolderName extends StringAttr
|
||||
}
|
||||
}
|
||||
@ -77,8 +77,8 @@ object ItemQuery {
|
||||
sealed trait Property
|
||||
object Property {
|
||||
final case class StringProperty(attr: StringAttr, value: String) extends Property
|
||||
final case class DateProperty(attr: DateAttr, value: Date) extends Property
|
||||
final case class IntProperty(attr: IntAttr, value: Int) extends Property
|
||||
final case class DateProperty(attr: DateAttr, value: Date) extends Property
|
||||
final case class IntProperty(attr: IntAttr, value: Int) extends Property
|
||||
|
||||
def apply(sa: StringAttr, value: String): Property =
|
||||
StringProperty(sa, value)
|
||||
@ -97,21 +97,21 @@ object ItemQuery {
|
||||
|
||||
object Expr {
|
||||
final case class AndExpr(expr: Nel[Expr]) extends Expr
|
||||
final case class OrExpr(expr: Nel[Expr]) extends Expr
|
||||
final case class OrExpr(expr: Nel[Expr]) extends Expr
|
||||
final case class NotExpr(expr: Expr) extends Expr {
|
||||
override def negate: Expr =
|
||||
expr
|
||||
}
|
||||
|
||||
final case class SimpleExpr(op: Operator, prop: Property) extends Expr
|
||||
final case class Exists(field: Attr) extends Expr
|
||||
final case class SimpleExpr(op: Operator, prop: Property) extends Expr
|
||||
final case class Exists(field: Attr) extends Expr
|
||||
final case class InExpr(attr: StringAttr, values: Nel[String]) extends Expr
|
||||
final case class InDateExpr(attr: DateAttr, values: Nel[Date]) extends Expr
|
||||
final case class InboxExpr(inbox: Boolean) extends Expr
|
||||
final case class DirectionExpr(incoming: Boolean) extends Expr
|
||||
final case class InboxExpr(inbox: Boolean) extends Expr
|
||||
final case class DirectionExpr(incoming: Boolean) extends Expr
|
||||
|
||||
final case class TagIdsMatch(op: TagOperator, tags: Nel[String]) extends Expr
|
||||
final case class TagsMatch(op: TagOperator, tags: Nel[String]) extends Expr
|
||||
final case class TagIdsMatch(op: TagOperator, tags: Nel[String]) extends Expr
|
||||
final case class TagsMatch(op: TagOperator, tags: Nel[String]) extends Expr
|
||||
final case class TagCategoryMatch(op: TagOperator, cats: Nel[String]) extends Expr
|
||||
|
||||
final case class CustomFieldMatch(name: String, op: Operator, value: String)
|
||||
@ -119,12 +119,12 @@ object ItemQuery {
|
||||
final case class CustomFieldIdMatch(id: String, op: Operator, value: String)
|
||||
extends Expr
|
||||
|
||||
final case class Fulltext(query: String) extends Expr
|
||||
final case class Fulltext(query: String) extends Expr
|
||||
final case class ChecksumMatch(checksum: String) extends Expr
|
||||
final case class AttachId(id: String) extends Expr
|
||||
final case class AttachId(id: String) extends Expr
|
||||
|
||||
final case object ValidItemStates extends Expr
|
||||
final case object Trashed extends Expr
|
||||
final case object ValidItemStates extends Expr
|
||||
final case object Trashed extends Expr
|
||||
final case object ValidItemsOrTrashed extends Expr
|
||||
|
||||
// things that can be expressed with terms above
|
||||
|
@ -13,7 +13,7 @@ object BasicParser {
|
||||
private[this] val whitespace: P[Unit] = P.charIn(" \t\r\n").void
|
||||
|
||||
val ws0: Parser0[Unit] = whitespace.rep0.void
|
||||
val ws1: P[Unit] = whitespace.rep.void
|
||||
val ws1: P[Unit] = whitespace.rep.void
|
||||
|
||||
val stringListSep: P[Unit] =
|
||||
(ws0.with1.soft ~ P.char(',') ~ ws0).void
|
||||
@ -45,7 +45,7 @@ object BasicParser {
|
||||
singleString.repSep(stringListSep)
|
||||
|
||||
val bool: P[Boolean] = {
|
||||
val trueP = P.stringIn(List("yes", "true", "Yes", "True")).as(true)
|
||||
val trueP = P.stringIn(List("yes", "true", "Yes", "True")).as(true)
|
||||
val falseP = P.stringIn(List("no", "false", "No", "False")).as(false)
|
||||
trueP | falseP
|
||||
}
|
||||
|
@ -8,51 +8,51 @@ package docspell.query.internal
|
||||
|
||||
object Constants {
|
||||
|
||||
val attachCount = "attach.count"
|
||||
val attachId = "attach.id"
|
||||
val cat = "cat"
|
||||
val checksum = "checksum"
|
||||
val conc = "conc"
|
||||
val concEquipId = "conc.equip.id"
|
||||
val attachCount = "attach.count"
|
||||
val attachId = "attach.id"
|
||||
val cat = "cat"
|
||||
val checksum = "checksum"
|
||||
val conc = "conc"
|
||||
val concEquipId = "conc.equip.id"
|
||||
val concEquipName = "conc.equip.name"
|
||||
val concPersId = "conc.pers.id"
|
||||
val concPersName = "conc.pers.name"
|
||||
val content = "content"
|
||||
val corr = "corr"
|
||||
val corrOrgId = "corr.org.id"
|
||||
val corrOrgName = "corr.org.name"
|
||||
val corrPersId = "corr.pers.id"
|
||||
val corrPersName = "corr.pers.name"
|
||||
val created = "created"
|
||||
val createdIn = "createdIn"
|
||||
val customField = "f"
|
||||
val concPersId = "conc.pers.id"
|
||||
val concPersName = "conc.pers.name"
|
||||
val content = "content"
|
||||
val corr = "corr"
|
||||
val corrOrgId = "corr.org.id"
|
||||
val corrOrgName = "corr.org.name"
|
||||
val corrPersId = "corr.pers.id"
|
||||
val corrPersName = "corr.pers.name"
|
||||
val created = "created"
|
||||
val createdIn = "createdIn"
|
||||
val customField = "f"
|
||||
val customFieldId = "f.id"
|
||||
val date = "date"
|
||||
val dateIn = "dateIn"
|
||||
val due = "due"
|
||||
val dueIn = "dueIn"
|
||||
val exist = "exist"
|
||||
val folder = "folder"
|
||||
val folderId = "folder.id"
|
||||
val id = "id"
|
||||
val inbox = "inbox"
|
||||
val incoming = "incoming"
|
||||
val name = "name"
|
||||
val names = "names"
|
||||
val notPrefix = '!'
|
||||
val notes = "notes"
|
||||
val source = "source"
|
||||
val tag = "tag"
|
||||
val tagId = "tag.id"
|
||||
val year = "year"
|
||||
val date = "date"
|
||||
val dateIn = "dateIn"
|
||||
val due = "due"
|
||||
val dueIn = "dueIn"
|
||||
val exist = "exist"
|
||||
val folder = "folder"
|
||||
val folderId = "folder.id"
|
||||
val id = "id"
|
||||
val inbox = "inbox"
|
||||
val incoming = "incoming"
|
||||
val name = "name"
|
||||
val names = "names"
|
||||
val notPrefix = '!'
|
||||
val notes = "notes"
|
||||
val source = "source"
|
||||
val tag = "tag"
|
||||
val tagId = "tag.id"
|
||||
val year = "year"
|
||||
|
||||
// operators
|
||||
val eqs = '='
|
||||
val gt = '>'
|
||||
val gte = ">="
|
||||
val in = "~="
|
||||
val eqs = '='
|
||||
val gt = '>'
|
||||
val gte = ">="
|
||||
val in = "~="
|
||||
val like = ':'
|
||||
val lt = '<'
|
||||
val lte = "<="
|
||||
val neq = "!="
|
||||
val lt = '<'
|
||||
val lte = "<="
|
||||
val neq = "!="
|
||||
}
|
||||
|
@ -31,9 +31,9 @@ object ExprParser {
|
||||
|
||||
val exprParser: P[Expr] =
|
||||
P.recursive[Expr] { recurse =>
|
||||
val andP = and(recurse)
|
||||
val orP = or(recurse)
|
||||
val notP = not(recurse)
|
||||
val andP = and(recurse)
|
||||
val orP = or(recurse)
|
||||
val notP = not(recurse)
|
||||
val macros = MacroParser.all
|
||||
P.oneOf(macros :: SimpleExprParser.simpleExpr :: andP :: orP :: notP :: Nil)
|
||||
}
|
||||
|
@ -57,24 +57,23 @@ object StringUtil {
|
||||
val escapedToken: P[Unit] = {
|
||||
val escapes = P.charIn(decodeTable.keys.toSeq)
|
||||
|
||||
val oct = P.charIn('0' to '7')
|
||||
val oct = P.charIn('0' to '7')
|
||||
val octP = P.char('o') ~ oct ~ oct
|
||||
|
||||
val hex = P.charIn(('0' to '9') ++ ('a' to 'f') ++ ('A' to 'F'))
|
||||
val hex = P.charIn(('0' to '9') ++ ('a' to 'f') ++ ('A' to 'F'))
|
||||
val hex2 = hex ~ hex
|
||||
val hexP = P.char('x') ~ hex2
|
||||
|
||||
val hex4 = hex2 ~ hex2
|
||||
val u4 = P.char('u') ~ hex4
|
||||
val u4 = P.char('u') ~ hex4
|
||||
val hex8 = hex4 ~ hex4
|
||||
val u8 = P.char('U') ~ hex8
|
||||
val u8 = P.char('U') ~ hex8
|
||||
|
||||
val after = P.oneOf[Any](escapes :: octP :: hexP :: u4 :: u8 :: Nil)
|
||||
(P.char('\\') ~ after).void
|
||||
}
|
||||
|
||||
/** String content without the delimiter
|
||||
*/
|
||||
/** String content without the delimiter */
|
||||
def undelimitedString(endP: P[Unit]): P[String] =
|
||||
escapedToken.backtrack
|
||||
.orElse((!endP).with1 ~ P.anyChar)
|
||||
|
@ -15,31 +15,31 @@ import munit._
|
||||
class ItemQueryParserTest extends FunSuite {
|
||||
|
||||
test("reduce ands") {
|
||||
val q = ItemQueryParser.parseUnsafe("(&(&(&(& name:hello))))")
|
||||
val q = ItemQueryParser.parseUnsafe("(&(&(&(& name:hello))))")
|
||||
val expr = ExprUtil.reduce(q.expr)
|
||||
assertEquals(expr, ItemQueryParser.parseUnsafe("name:hello").expr)
|
||||
}
|
||||
|
||||
test("reduce ors") {
|
||||
val q = ItemQueryParser.parseUnsafe("(|(|(|(| name:hello))))")
|
||||
val q = ItemQueryParser.parseUnsafe("(|(|(|(| name:hello))))")
|
||||
val expr = ExprUtil.reduce(q.expr)
|
||||
assertEquals(expr, ItemQueryParser.parseUnsafe("name:hello").expr)
|
||||
}
|
||||
|
||||
test("reduce and/or") {
|
||||
val q = ItemQueryParser.parseUnsafe("(|(&(&(| name:hello))))")
|
||||
val q = ItemQueryParser.parseUnsafe("(|(&(&(| name:hello))))")
|
||||
val expr = ExprUtil.reduce(q.expr)
|
||||
assertEquals(expr, ItemQueryParser.parseUnsafe("name:hello").expr)
|
||||
}
|
||||
|
||||
test("reduce inner and/or") {
|
||||
val q = ItemQueryParser.parseUnsafe("(& name:hello (| name:world))")
|
||||
val q = ItemQueryParser.parseUnsafe("(& name:hello (| name:world))")
|
||||
val expr = ExprUtil.reduce(q.expr)
|
||||
assertEquals(expr, ItemQueryParser.parseUnsafe("(& name:hello name:world)").expr)
|
||||
}
|
||||
|
||||
test("omit and-parens around root structure") {
|
||||
val q = ItemQueryParser.parseUnsafe("name:hello date>2020-02-02")
|
||||
val q = ItemQueryParser.parseUnsafe("name:hello date>2020-02-02")
|
||||
val expect = ItemQueryParser.parseUnsafe("(& name:hello date>2020-02-02 )")
|
||||
assertEquals(expect, q)
|
||||
}
|
||||
@ -51,7 +51,7 @@ class ItemQueryParserTest extends FunSuite {
|
||||
|
||||
test("splice inner and nodes") {
|
||||
val raw = "(& name:hello (& date:2021-02 name:world) (& name:hello) )"
|
||||
val q = ItemQueryParser.parseUnsafe(raw)
|
||||
val q = ItemQueryParser.parseUnsafe(raw)
|
||||
val expect =
|
||||
ItemQueryParser.parseUnsafe("name:hello date:2021-02 name:world name:hello")
|
||||
assertEquals(expect.copy(raw = raw.some), q)
|
||||
@ -59,7 +59,7 @@ class ItemQueryParserTest extends FunSuite {
|
||||
|
||||
test("splice inner or nodes") {
|
||||
val raw = "(| name:hello (| date:2021-02 name:world) (| name:hello) )"
|
||||
val q = ItemQueryParser.parseUnsafe(raw)
|
||||
val q = ItemQueryParser.parseUnsafe(raw)
|
||||
val expect =
|
||||
ItemQueryParser.parseUnsafe("(| name:hello date:2021-02 name:world name:hello )")
|
||||
assertEquals(expect.copy(raw = raw.some), q)
|
||||
|
Reference in New Issue
Block a user