A simple script to allow to switch easily between JDK versions on a single machine, in case several versions are needed.
Usage:
jver list # list all available versions in $BASE_DIR
jver 17 # switch to version 17
jver 17 -q # suppress output
#!/bin/bash | |
export PROMPT_COMMAND=__prompt_command | |
function __prompt_command() { | |
EXIT="$?" | |
PS1="" | |
# Colored Terminal | |
export CLICOLOR=1 | |
export LSCOLORS=GxFxCxDxBxegedabagaced |
KeyCodes = { | |
"BACKSPACE": 8, | |
"TAB": 9, | |
"ENTER": 13, | |
"SHIFT": 16, | |
"CTRL": 17, | |
"ALT": 18, | |
"PAUSE": 19, | |
"CAPS_LOCK": 20, | |
"ESCAPE": 27, |
import 'package:logger/logger.dart'; | |
class SplitConsoleOutput extends LogOutput { | |
/// Maximum length per line in the log. Any logs larger than this length | |
/// will be split into chunks and printed in sequence. | |
final int splitLength; | |
/// Set to `false` to disable splitting, or leave `null`/`true` to retain the | |
/// default behavior, which is to truncate the text. | |
/// |
[ +169 ms] executing: sysctl hw.optional.arm64 | |
[ +38 ms] Exit code 0 from: sysctl hw.optional.arm64 | |
[ +3 ms] hw.optional.arm64: 1 | |
[ +8 ms] executing: [/Users/<user>/.flutter-src/] git -c log.showSignature=false log -n 1 --pretty=format:%H | |
[ +26 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H | |
[ ] 680962aa75a3c0ea8a55c57adc98944f5558bafd | |
[ +1 ms] executing: [/Users/<user>/.flutter-src/] git tag --points-at 680962aa75a3c0ea8a55c57adc98944f5558bafd | |
[ +107 ms] Exit code 0 from: git tag --points-at 680962aa75a3c0ea8a55c57adc98944f5558bafd | |
[ +1 ms] 2.12.0-4.1.pre | |
[ +16 ms] executing: [/Users/<user>/.flutter-src/] git rev-parse --abbrev-ref --symbolic @{u} |
type R = Record<string | number, any> | |
export function parseFieldSafe<T extends Zod.AnyZodObject, K extends keyof Zod.infer<T>>( | |
obj: T, | |
key: K, | |
value: T[K], | |
): Zod.SafeParseReturnType<R, R> { | |
return obj.pick({ [key]: true as const }).safeParse({ [key]: value }) | |
} |
type FirstOf<T extends IOFn[]> = T extends [infer F extends (...args: any) => any, ...IOFn[]] | |
? Parameters<F> | |
: never | |
type LastOf<T extends IOFn[]> = T extends [...IOFn[], infer L extends (...args: any) => any] | |
? ReturnType<L> | |
: never | |
type IOFn<I extends any[] = any, O = any> = (...x: I) => O | |
type Composed<A extends IOFn[]> = (...x: FirstOf<A>) => LastOf<A> | |
export function compose<A extends IOFn[]>(...fns: A): Composed<A> { |
This format function is great to use on any languages not supported by your current LSP or when you are trying to pass custom arguments.
This example shows how dart format
can be used to reformat the current buffer (so
the file save state is irrelevant), replace the buffer with the new contents, and
put the cursor back in position.
We prevent the need to escape any variables or tokens inside by using bash heredoc
true
script
mou
becomes mapper cexit open u;;u
mue
becomes mapper cexit cast knock e;;open e;;e
and also adds sets higher cexit_wait to make sure it succeeds