Skip to content

Instantly share code, notes, and snippets.

Andrew Radev AndrewRadev

Block or report user

Report or block AndrewRadev

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
AndrewRadev /
Last active Nov 13, 2018
Divide successfully or default to zero
trait OrZero {
fn or_zero(self) -> Self;
impl OrZero for f64 {
fn or_zero(self) -> Self {
if self.is_normal() { self } else { 0.0 }
AndrewRadev /
Last active Oct 21, 2018
Keep track of a long-running process
# Given a long-running process in the terminal:
# - Ctrl+Z to suspend it
# - Run `keep-track`
# - Output resumes, when done will show a notification with the time it took for the process to run
# Can be customized with an `--icon` to `notify-send`,
# maybe a sound effect added in the `&&` list.
function keep-track() {
extern crate solution;
use solution::*;
use std::io::{self, Write};
fn main() {
let mut game = Game::new("aardvark", 10).unwrap();
let stdin = io::stdin();
println!("Let's play hangman!");
AndrewRadev / jsx.vim
Last active May 30, 2017
gf for react
View jsx.vim
set includeexpr=<SID>Includeexpr()
augroup jsx_autocommands
" Override gf if rails sets it after
autocmd User Rails cmap <buffer><expr> <Plug><cfile> <SID>Includeexpr()
augroup END
function! s:Includeexpr()
AndrewRadev /
Last active Mar 21, 2017
Convert an image to simple ASCII-art
extern crate image;
use std::io::File;
use image::GenericImage;
fn main() {
let path = Path::new("examples/test_image.png");
let file = File::open(&path);
match image::load(file, image::ImageFormat::PNG) {
View ftplugin_ruby.vim
" Define what color the private area will be
hi rubyPrivateArea ctermbg=darkgray
function! s:MarkPrivateArea()
" Clear out any previous matches
call clearmatches()
" Store the current view, in order to restore it later
let saved_view = winsaveview()
AndrewRadev / lebab.vim
Last active Apr 17, 2018
Use the "lebab" tool through Vim
View lebab.vim
" Invoke the `lebab` tool on the current buffer (
" Usage:
" :Lebab <transform1> <transform2> [...]
" This will run all the transforms specified and replace the buffer with the
" results. The available transforms tab-complete.
command! -nargs=+ -complete=custom,s:LebabComplete
View indent_test_large_complex_file.rb
class AroundEverything
class Nested
def example
next_line.method do |one, two|
Body of method
View indent_test_active_record.rb
module ActiveRecord
class Attribute # :nodoc:
class << self
def from_database(name, value, type), value, type)
def from_user(name, value, type), value, type)
AndrewRadev / benchmark.vim
Created Jan 5, 2017
A simple benchmark for vim-ruby indentation
View benchmark.vim
function! s:Stats(list)
let sum = 0
for item in a:list
let sum += item
let mean = sum / len(a:list)
let sum_deviations = 0
for item in a:list
You can’t perform that action at this time.