Skip to content

Instantly share code, notes, and snippets.

View davidmh's full-sized avatar
🐧

David Mejorado davidmh

🐧
View GitHub Profile
@davidmh
davidmh / reducer.ts
Last active September 27, 2022 16:25
Why do we need an explicit return on reducer functions?
interface State {
propA: number;
propB: string;
}
/**
* TypeScript is a structural type system. This means as long as your data
* structure satisfies a contract, TypeScript will allow it. Even if you have
* too many keys declared.
*
@davidmh
davidmh / quickfix-fzf.vim
Last active July 15, 2022 20:00
Filter the quickfix list with fzf
function! s:format_qf_line(line)
let parts = split(a:line, ':')
return { 'filename': parts[0]
\,'lnum': parts[1]
\,'col': parts[2]
\,'text': join(parts[3:], ':')
\ }
endfunction
function! s:qf_to_fzf(key, line) abort
@davidmh
davidmh / init.vim
Last active April 16, 2020 18:52
neovim config
let g:mapleader = "\<SPACE>"
" Show white spaces at the end of a line
" set list listchars=tab:▸\ ,eol:¬,trail:·
set list listchars=tab:▸\ ,trail:·
set mouse=a
" edit this nvim config
command! Vimrc tabedit $HOME/.config/nvim/init.vim
@davidmh
davidmh / toggle-selected-trip.diff
Created September 15, 2018 17:37
toggle selected trip
diff --git a/src/App.js b/src/App.js
index b8ec935..04a4045 100644
--- a/src/App.js
+++ b/src/App.js
@@ -30,9 +30,10 @@ class App extends Component {
}
selectTrip = tripId => {
- this.setState({
- selectedTrip: tripId
@davidmh
davidmh / discourse.js
Created June 13, 2018 08:19
discourse api
require('isomorphic-fetch')
const { createFetch, base, accept, method, params, parse } = require('http-client')
module.exports = (base_url, api_username, api_key) => {
const auth = params({ api_username, api_key })
const requestFactory = method_name => (pathname, data = {}) => {
const req = createFetch(
base(base_url),
" netrw
let g:netrw_banner = 0 " hide banner
let g:netrw_altv=1 " open splits to the right
let g:netrw_liststyle=3 " tree view
let g:netrw_list_hide=netrw_gitignore#Hide()
function! s:open_netrw()
" Grab the current file name
let file_name = expand("%:t")
" Open a 20-column left-side netrw explorer in the directory for the current
@davidmh
davidmh / tmux.vim
Created September 26, 2017 21:02
tmux mappings
command! ZoomServer call system('tmux resize-pane -Z -t 2')
command! ZoomClient call system('tmux resize-pane -Z -t 1')
command! RestartClient call system('tmux send-keys -t 1 C-c "npm run dev" Enter')
command! RestartServer call system('tmux send-keys -t 2 C-c "npm run start-dev" Enter')
nnoremap <silent> <leader>zc :ZoomClient<CR>
nnoremap <silent> <leader>zs :ZoomServer<CR>
nnoremap <silent> <leader>rc :RestartClient<CR>
nnoremap <silent> <leader>rs :RestartServer<CR>
@davidmh
davidmh / pre-push
Created September 16, 2017 00:22
Run npm tests before pushing
#!/bin/sh
# Called by "git push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
@davidmh
davidmh / !react-sublime-snippets.md
Last active September 6, 2017 17:16 — forked from JawsomeJason/!react-sublime-snippets.md
Sublime Text Completions and Snippets for React
@davidmh
davidmh / presentation.vim
Last active August 3, 2020 13:17
Presentation mode with Goyo + vim-markdown
" https://asciinema.org/a/kE1398clJWRPPhk3lWbtvbanF
" Presentation mode
"
" use <left> and <right> to navigate the slides
"
" https://github.com/plasticboy/vim-markdown Makes folds by sections (among many other things)
" https://github.com/junegunn/goyo.vim Distraction-free writing (and reading) in Vim
function! s:enter_presentation()