364 lines
6.3 KiB
Text
Executable file
364 lines
6.3 KiB
Text
Executable file
################################################################
|
|
# © Copyright 2011 Konstantin Gorodinskiy. All Rights Reserved.#
|
|
# Do What The Fuck You Want To Public License, Version 2. #
|
|
# See http://sam.zoy.org/wtfpl/COPYING for more details. #
|
|
################################################################
|
|
# Scala lang
|
|
#if
|
|
snippet if
|
|
if (${1})
|
|
${0:${VISUAL}}
|
|
#if not
|
|
snippet ifn
|
|
if (!${1})
|
|
${0:${VISUAL}}
|
|
#if-else
|
|
snippet ife
|
|
if (${1})
|
|
${2:${VISUAL}}
|
|
else
|
|
${0}
|
|
#if-else-if
|
|
snippet ifelif
|
|
if (${1})
|
|
${2:${VISUAL}}
|
|
else if (${3})
|
|
${0:${VISUAL}}
|
|
snippet eif
|
|
else if (${3})
|
|
${0:${VISUAL}}
|
|
#while loop
|
|
snippet wh
|
|
while (${1:obj}) {
|
|
${0:${VISUAL}}
|
|
}
|
|
#for loop(classic)
|
|
snippet for
|
|
for (${1:item} <- ${2:obj}) {
|
|
${0}
|
|
}
|
|
#for loop(indexed)
|
|
snippet fori
|
|
for (${1:i} <- ${2:0} to ${3:obj}.length) {
|
|
${0}
|
|
}
|
|
#for comprehension
|
|
snippet fory
|
|
for {
|
|
${1:item} <- ${2:obj}
|
|
} yield ${0}
|
|
#exceptions
|
|
snippet try
|
|
try {
|
|
${1:${VISUAL}}
|
|
} catch {
|
|
case e: FileNotFoundException => ${2}
|
|
case e: IOException => ${3}
|
|
} finally {
|
|
${0}
|
|
}
|
|
#match
|
|
snippet mat
|
|
${1:${VISUAL}} match {
|
|
case ${2} => ${0}
|
|
}
|
|
snippet match
|
|
${1: obj} match {
|
|
case ${2:e} => ${3}
|
|
case _ => ${0}
|
|
}
|
|
#case
|
|
snippet case
|
|
case ${1:${VISUAL}} => ${0}
|
|
############################
|
|
# methods and arguments
|
|
#
|
|
#arg
|
|
snippet arg
|
|
${1:a}: ${2:T}${0:, arg}
|
|
#args
|
|
snippet args
|
|
${1:args}: ${0:T}*
|
|
#def
|
|
snippet def
|
|
def ${1:name}(${2:arg}) = ${0:}
|
|
#private def
|
|
snippet prdef
|
|
private def ${1:name}(${2:arg}) = ${0:}
|
|
#override def
|
|
snippet ovdef
|
|
override def ${1:name}(${2:arg}) = ${0:}
|
|
#first class function(see scalabook p 188)
|
|
snippet fcf
|
|
(${1:a}: ${2:T}) => $1 ${0}
|
|
snippet =>
|
|
${1:name} => ${0}
|
|
#recursion
|
|
snippet rec
|
|
def ${1:name}(${0:arg}) =
|
|
if($2) $2
|
|
else $1($2)
|
|
#curried method
|
|
snippet crdef
|
|
def ${1:name}(${2:arg})(${3:arg}) = ${0:}
|
|
#main method
|
|
#check validity of T
|
|
snippet main
|
|
def main(args: Array[String]):${1:T} = ${0:}
|
|
############################
|
|
# basic types(general purpose)
|
|
# you might want to use basic types snippets
|
|
|
|
#1
|
|
snippet T Double
|
|
dbl
|
|
#2
|
|
snippet T Int
|
|
int
|
|
#3
|
|
snippet T Long
|
|
lng
|
|
#4
|
|
snippet T Char
|
|
chr
|
|
#5
|
|
snippet T String
|
|
str
|
|
#6
|
|
snippet T Array
|
|
arr
|
|
#7
|
|
snippet T Buffer
|
|
buf
|
|
#8
|
|
snippet T List
|
|
list
|
|
#9
|
|
snippet T Tuple
|
|
tpl
|
|
#10
|
|
snippet T Set
|
|
set
|
|
#11
|
|
snippet T Map
|
|
map
|
|
#12
|
|
snippet T HashSet
|
|
hset
|
|
#13
|
|
snippet T HashMap
|
|
hmap
|
|
#14
|
|
snippet T Boolean
|
|
bool
|
|
#end
|
|
|
|
#named snippets for types
|
|
snippet bool
|
|
Boolean
|
|
snippet anyr
|
|
AnyRef
|
|
snippet dbl
|
|
Double
|
|
snippet int
|
|
Int
|
|
snippet str
|
|
String
|
|
snippet chr
|
|
Char
|
|
snippet lng
|
|
Long
|
|
snippet arr
|
|
Array${1:[T]}${0:()}
|
|
snippet buf
|
|
Buffer${1:[T]}${0:()}
|
|
snippet list
|
|
List${1:[T]}${0:()}
|
|
snippet tpl
|
|
Tuple${1:2}[${2:T},${0:T}]
|
|
snippet set
|
|
Set${1:[T]}${0:()}
|
|
snippet hset
|
|
HashSet${1:[T]}${0:()}
|
|
snippet mhset
|
|
mutable.HashSet${1:[T]}${0:()}
|
|
#for maps
|
|
snippet keyval
|
|
${1:key}->${2:val}${0:, keyval}
|
|
snippet map
|
|
Map[${1:T},${2:T}]${0:(keyval)}
|
|
snippet hmap
|
|
HashMap[${1:T},${2:T}]${0:(keyval)}
|
|
snippet mmap
|
|
mutable.Map[${1:T},${2:T}]${0:(keyval)}
|
|
snippet mhmap
|
|
mutable.HashMap[${1:T},${2:T}]${0:(keyval)}
|
|
#TODO add TreeMap and TreeSet
|
|
#asInstanceOf[]
|
|
snippet as
|
|
${1:name}.asInstanceOf[${2:T}]
|
|
#isInstanceOf[]
|
|
snippet is
|
|
${1:name}.isInstanceOf[${2:T}]
|
|
|
|
#collections methods
|
|
|
|
#scope() with one arg
|
|
snippet (a
|
|
(${1:a} => ${0})
|
|
#scope() with two args
|
|
snippet {(
|
|
{(${1:a},${2:b}) =>
|
|
${0}
|
|
}
|
|
#filter
|
|
snippet filter
|
|
${0:name}.filter (a
|
|
#map function
|
|
snippet mapf
|
|
${0:name}.map (a
|
|
#flatmap
|
|
snippet flatmap
|
|
${1:name}.flatMap${0:[T]}(a
|
|
#fold left
|
|
snippet fldl
|
|
${1:name}.foldLeft(${0:first}) {(
|
|
#fold right
|
|
snippet fldr
|
|
${1:name}.foldRight(${0:first}) {(
|
|
#fold left operator(if u wanna reduce readability of ur code)
|
|
#use wildcard symbols
|
|
snippet /:
|
|
(${1:first}/:${2:name})(${0})
|
|
#fold right operator
|
|
snippet :\
|
|
(${1:first}:\${2:name})(${0})
|
|
#reduce left
|
|
snippet redl
|
|
${1:name}.reduceLeft[${0:T}] {(
|
|
#reduce right
|
|
snippet redr
|
|
${1:name}.reduceRight[${0:T}] {(
|
|
#zipWithIndex(safe way).
|
|
#see http://daily-scala.blogspot.com/2010/05/zipwithindex.html
|
|
snippet zipwi
|
|
${0:name}.view.zipWithIndex
|
|
#split
|
|
snippet spl
|
|
${1:name}.split("${0:,}")
|
|
#end
|
|
snippet val
|
|
val ${1:name}${2:: T} = ${0:value}
|
|
snippet var
|
|
var ${1:name}${2:: T} = ${0:value}
|
|
############################
|
|
# classes
|
|
#
|
|
#extends
|
|
snippet extends
|
|
extends ${0:what}
|
|
#with
|
|
snippet with
|
|
with ${1:what}${0: with}
|
|
#auxiliary constructor(a. this)
|
|
snippet athis
|
|
def this(arg) = this(arg)
|
|
#abstract class
|
|
snippet abstract
|
|
abstract class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
|
${5:override def toString = "$1"}
|
|
${0}
|
|
}
|
|
#class
|
|
snippet class
|
|
class ${1:name}${2:(arg)}${3: extends }${4: with} {
|
|
${5:override def toString = "$1"}
|
|
${0}
|
|
}
|
|
#object
|
|
snippet object
|
|
object ${1:name}${2:(arg)}${3: extends }${4: with} ${0:}
|
|
#trait
|
|
snippet trait
|
|
trait ${1:name}${2: extends }${3: with} {
|
|
${0:}
|
|
}
|
|
#class with trait Ordered(page 265)
|
|
snippet ordered
|
|
class ${1:name}${2:(arg)} extends Ordered[$1] ${3: with} {
|
|
${4:override def toString = "$1"}
|
|
def compare(that: $1) = ${5:this - that}
|
|
${0}
|
|
}
|
|
#case class
|
|
snippet casecl
|
|
case class ${1:name}${2:(arg)}${3: extends }${4: with} ${0:}
|
|
############################
|
|
# testing
|
|
#
|
|
#scalatest imports
|
|
snippet scalatest
|
|
${1:import org.scalatest.Suite}
|
|
${0:import org.scalatest.FunSuite}
|
|
#assert
|
|
snippet assert
|
|
assert(${1:a} === ${0:b})
|
|
#ensuring(p 296)
|
|
snippet ensuring
|
|
ifel ensuring(${1:a}==${0:b})
|
|
#expect
|
|
snippet expect
|
|
expect(${1:what}) {
|
|
${0}
|
|
}
|
|
#intercept
|
|
snippet intercept
|
|
intercept[${1:IllegalArgumentException}] {
|
|
${0}
|
|
}
|
|
#test
|
|
snippet test
|
|
test("${1:description}") {
|
|
${0}
|
|
}
|
|
#suite
|
|
snippet suite
|
|
class ${0:name} extends Suite {
|
|
def test() {
|
|
}
|
|
#funsuite
|
|
snippet fsuite
|
|
class ${1:name} extends FunSuite {
|
|
test("${0:description}") {
|
|
}
|
|
############################
|
|
# SBT
|
|
#
|
|
snippet webproject
|
|
import sbt._
|
|
|
|
class ${1:Name}(info: ProjectInfo) extends DefaultWebProject(info) {
|
|
val liftVersion = "${0:2.3}"
|
|
|
|
override def libraryDependencies = Set(
|
|
|
|
) ++ super.libraryDependencies
|
|
|
|
val snapshots = ScalaToolsSnapshots
|
|
}
|
|
#depencies
|
|
snippet liftjar
|
|
"net.liftweb" %% "${0:lib}" % liftVersion % "compile->default",
|
|
snippet jettyjar
|
|
"org.mortbay.jetty" % "jetty" % "${0:version}" % "test->default",
|
|
############################
|
|
# Lift
|
|
#
|
|
#lift imports
|
|
snippet liftimports
|
|
import _root_.net.liftweb.http._
|
|
import S._
|
|
import _root_.net.liftweb.util._
|
|
import Helpers._
|
|
import _root_.scala.xml._
|
|
#TODO LIFT,SBT,WEB.XML,HTML snippets
|