Skip to content

Instantly share code, notes, and snippets.

View ghasemdev's full-sized avatar
☠️
Later , means never. So do it right now

Ghasem Shirdel ghasemdev

☠️
Later , means never. So do it right now
View GitHub Profile
@ghasemdev
ghasemdev / DataClass.kt
Last active October 10, 2021 18:10
Advanced Kotlin (DataClass, Delegation, InlineClass, InnerClass, Object, SealedClass, TypeAlias)
fun main(args: Array<String>) {
val reza = Student("reza", 22)
val ghasem = Student("ghasem", 22)
println(ghasem.hashCode())
}
/*class Student(val name: String, private val age: Int) {
fun printPlan() = "Plan"
@ghasemdev
ghasemdev / Extension Function.kt
Created September 17, 2021 05:36
Kotlin Functions (Extension Function, Infix Function, Inline Function, Interface Function, Scope Function, Tail Recursion)
fun main() {
println("asdf".isDigits)
println("asdf1234".isDigits)
println("123456".isDigits)
val content: String? = null
println(content.orEmpty())
String.print("hello")
}
@ghasemdev
ghasemdev / starship
Last active September 5, 2022 11:50
Terminal Configure
# Inserts a blank line between shell prompts
add_newline = false
# Disable the package module, hiding it from the prompt completely
[package]
disabled = true
# Exec time
command_timeout=5000
@ghasemdev
ghasemdev / Repeat.kt
Last active February 1, 2022 09:59
Repeat loop
import Jumps.BREAK
import Jumps.CONTINUE
enum class Jumps { BREAK, CONTINUE }
inline fun repeat(action: (index: Int) -> Any) {
var counter = 0
loop@ while (true) {
val result = action(counter)
if (result == BREAK) break@loop
@ghasemdev
ghasemdev / Operator.kt
Last active January 3, 2022 09:24
Operator Functions
import kotlin.math.pow
fun main() {
println("^" * 5) // "^^^^^"
println(5 `^` 3) // 125.0
println(199 `%%` 24) // (24 * 199) / 100 = 47.76
println(5 / 2) // 2
println(5 `÷` 2) // 2.5
@ghasemdev
ghasemdev / .editorconfig
Last active July 6, 2022 08:59
git hooks - Kotlin projects
[*]
charset = utf-8
end_of_line = crlf
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 100
ij_kotlin_imports_layout = *, android.*, androidx.*, com.*, java.*, javax.*, kotlin.*, kotlinx.*, $*
# Tab indentation (no size specified)
@ghasemdev
ghasemdev / Preview.kt
Last active October 31, 2022 19:46
jetpack Compose Preview
@Preview(
name = "NEXUS_5 -> 4.95\"",
group = "devices",
device = Devices.NEXUS_5,
showBackground = true
)
@Preview(
name = "PIXEL -> 5.0\"",
group = "devices",
@ghasemdev
ghasemdev / resource.kt
Created July 6, 2022 09:02
Release Resource
import arrow.fx.coroutines.continuations.resource
import arrow.fx.coroutines.release
class UserProcessor {
fun start(): Unit = println("Creating UserProcessor")
fun shutdown(): Unit = println("Shutting down UserProcessor")
fun process(ds: DataSource): List<String> =
ds.users().map { "Processed $it" }
}
@ghasemdev
ghasemdev / .vimrc
Created July 25, 2022 14:00
Vim Config
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set autoindent
set mouse=a
@ghasemdev
ghasemdev / init.vim
Created July 25, 2022 14:01
Neo Vim Config
:set number
:set relativenumber
:set tabstop=4
:set shiftwidth=4
:set autoindent
:set smarttab
:set softtabstop=4
:set mouse=a
call plug#begin()