Code Monkey home page Code Monkey logo

atom-easy-motion-redux's Issues

easy-motion-redux:words-select leaves me in visual mode?

Hello, thanks for taking the time to create this. I don't know why I go into visual mode after the command.
After I enter the two letters it takes me to the location but it leaves me in visual mode. This is my keymap.cson file:

'atom-text-editor.vim-mode-plus.normal-mode':
  's': 'easy-motion-redux:words-select'

Any plans of supporting these?

map s <Plug>(easymotion-prefix)
map sj <Plug>(easymotion-w)
map sk <Plug>(easymotion-b)
map ss <Plug>(easymotion-bd-w)
map sl <Plug>(easymotion-bd-wl)

Select vs. go to

There's a comparable IntelliJ IDEA plugin called AceJump that has a clever twist: when selecting the position via the letter, pressing simply the letter key would jump to the position, whereas pressing Shift + the letter key would select from the current position to the destination.

This feature would be rather nice :)

Uncaught TypeError: Cannot read property '0' of undefined

[Enter steps to reproduce below:]

  1. run 'easy-motion-redux:letter' via key command (for me this is cmd-;)
  2. type anything.

Atom Version: 1.3.3
System: Mac OS X 10.10.5
Thrown From: easy-motion-redux package, v1.0.0

Stack Trace

Uncaught TypeError: Cannot read property '0' of undefined

At /Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:149

TypeError: Cannot read property '0' of undefined
    at InputView.confirm (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:149:74)
    at InputView.filterPositions (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:167:18)
    at InputView.autosubmit (/Users/tom/.atom/packages/easy-motion-redux/lib/views/input.js:116:14)

Commands

     -0:46.1.0 jumpy:toggle (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:43.8.0 jumpy:e (atom-text-editor.editor.vim-mode.insert-mode.is-focused.jumpy-jump-mode)
     -0:43.8.0 jumpy:m (atom-text-editor.editor.vim-mode.insert-mode.is-focused.jumpy-jump-mode)
  2x -0:41.9.0 pane:show-next-item (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
  2x -0:33.7.0 core:backspace (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:32.9.0 atomic-emacs:previous-line (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
  2x -0:32.2.0 core:backspace (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:31.5.0 core:save (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:30.5.0 pane:show-next-item (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:20.8.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:19.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:16.5.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
     -0:09.4.0 editor:newline (atom-text-editor.editor.vim-mode.insert-mode.is-focused)
  2x -0:08.6.0 easy-motion-redux:letter (atom-text-editor.editor.vim-mode.insert-mode.is-focused)

Config

{
  "core": {
    "themes": [
      "one-light-ui",
      "one-light-syntax"
    ],
    "projectHome": "/Users/tom/Documents/Projects",
    "disabledPackages": [
      "open-terminal-here",
      "language-julia",
      "language-jade"
    ],
    "packagesWithKeymapsDisabled": [
      "atomic-emacs",
      "vim-mode",
      "python-autopep8"
    ]
  },
  "easy-motion-redux": {
    "replaceCharacters": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  }
}

Installed Packages

# User
atomic-emacs, v0.7.4
autocomplete-paths, v1.0.2
build-tools, v4.3.1
custom-title, v1.0.1
easy-motion-redux, v1.0.0
jumpy, v2.0.10
language-latex, v0.6.1
language-r, v0.4.0
latex, v0.28.2
linter, v1.11.2
linter-pylint, v1.0.4
minimap, v4.16.1
minimap-autohide, v0.10.1
minimap-codeglance, v0.4.5
minimap-git-diff, v4.1.8
project-manager, v2.6.5
python-autopep8, v0.1.3
vim-mode, v0.63.0
wordcount, v2.4.1

# Dev
No dev packages

Uncaught SyntaxError: Invalid regular expression: /[/: Unterminated character class

[Enter steps to reproduce below:]

  1. Open letter jump
  2. Type [

Atom Version: 1.6.0
System: Mac OS X 10.11.3
Thrown From: easy-motion-redux package, v1.0.0

Stack Trace

Uncaught SyntaxError: Invalid regular expression: /[/: Unterminated character class

At /Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:260

SyntaxError: Invalid regular expression: /[/: Unterminated character class
    at new RegExp (native)
    at InputView.loadPositions (/Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:260:35)
    at InputView.autosubmit (/Users/12/.atom/packages/easy-motion-redux/lib/views/input.js:111:18)

Commands

     -2:04.0 tabs:keep-preview-tab (atom-text-editor.editor)
     -1:07.5.0 nuclide-quick-open:find-anything-via-omni-search (atom-text-editor.editor.is-focused)
     -1:06.4.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -1:04.1.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -1:04.0 tabs:keep-preview-tab (atom-text-editor.editor)
     -0:39.2.0 easy-motion-redux:letter (atom-text-editor.editor.is-focused)
  2x -0:35.3.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:28.7.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -0:28.7.0 core:cancel (atom-text-editor.editor.mini.is-focused)
     -0:09.9.0 spell-check:correct-misspelling (atom-text-editor.editor.is-focused)
     -0:07.3.0 editor:consolidate-selections (atom-text-editor.editor.is-focused)
     -0:07.3.0 core:cancel (atom-text-editor.editor.is-focused)
     -0:06.4.0 easy-motion-redux:letter (atom-text-editor.editor.is-focused)
     -0:02.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:01.3.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -0:01.3.0 core:cancel (atom-text-editor.editor.mini.is-focused)

Config

{
  "core": {
    "customFileTypes": {
      "source.ini": [
        ".buckconfig",
        ".flowconfig"
      ],
      "source.json": [
        ".arcconfig"
      ],
      "source.python": [
        "BUCK"
      ]
    },
    "disabledPackages": [
      "tree-view"
    ]
  }
}

Installed Packages

# User
Sublime-Style-Column-Selection, v1.5.1
atom-terminal-panel, v4.4.4
build, v0.57.0
build-grunt, v0.4.0
docblockr, v0.7.3
easy-motion-redux, v1.0.0
editorconfig, v1.2.4
environment, v1.2.0
file-icons, v1.6.19
js-hyperclick, v1.4.1
minimap, v4.21.0
nuclide, v0.126.0
project-plus, v0.8.0

# Dev
No dev packages

Failed to activate the easy-motion-redux package

[Enter steps to reproduce:]

  1. Open atom
  2. Done

Atom: 1.18.0 ia32
Electron: 1.3.15
OS: Ubuntu 14.04.5
Thrown From: easy-motion-redux package 1.1.1

Stack Trace

Failed to activate the easy-motion-redux package

At Arguments to CompositeDisposable.add must have a .dispose() method

TypeError: Arguments to CompositeDisposable.add must have a .dispose() method
    at assertDisposable (/opt/atom/resources/app/node_modules/event-kit/lib/composite-disposable.js:74:19)
    at CompositeDisposable.module.exports.CompositeDisposable.add (/opt/atom/resources/app/node_modules/event-kit/lib/composite-disposable.js:43:17)
    at Package.module.exports.Package.activateKeymaps (/opt/atom/resources/app/src/package.js:374:38)
    at Package.module.exports.Package.activateResources (/opt/atom/resources/app/src/package.js:341:20)
    at /opt/atom/resources/app/src/package.js:221:29
    at Package.module.exports.Package.measure (/opt/atom/resources/app/src/package.js:99:21)
    at /opt/atom/resources/app/src/package.js:218:32
    at Package.module.exports.Package.activate (/opt/atom/resources/app/src/package.js:215:40)
    at PackageManager.module.exports.PackageManager.activatePackage (/opt/atom/resources/app/src/package-manager.js:645:40)
    at /opt/atom/resources/app/src/package-manager.js:626:35
    at Config.module.exports.Config.transactAsync (/opt/atom/resources/app/src/config.js:346:24)
    at PackageManager.module.exports.PackageManager.activatePackages (/opt/atom/resources/app/src/package-manager.js:621:25)
    at PackageManager.module.exports.PackageManager.activate (/opt/atom/resources/app/src/package-manager.js:603:52)
    at /opt/atom/resources/app/src/atom-environment.js:846:34

Commands

Non-Core Packages

atom-clang 1.0.14 
atom-debugger 0.1.6 
atom-keyboard-macros-vim 0.1.6 
autocomplete-java 1.2.7 
autocomplete-python 1.9.0 
busy-signal 1.4.3 
clip-history 0.4.0 
clipboard-plus 0.5.1 
cursor-history 0.11.1 
easy-motion-redux 1.1.1 
ex-mode 0.15.0 
Hydrogen 1.18.0 
intentions 1.1.2 
java-importer 1.4.1 
language-latex 1.0.0 
latex 0.44.0 
latex-autocomplete 1.0.0 
latex-completions 0.3.2 
latex-plus 0.9.1 
linter 2.2.0 
linter-gcc 0.7.1 
linter-javac 1.9.4 
linter-spell-latex 0.9.2 
linter-ui-default 1.6.2 
markdown-preview-plus 2.4.9 
persistent-undo 1.2.0 
python-indent 1.0.3 
python-tools 0.6.9 
undo-tree 0.2.0 
vim-mode-clipboard-plus 0.2.0 
vim-mode-plus 0.93.0 
vim-mode-plus-keymaps-for-surround 0.2.1 

Background coloring

Lightening a the background of an already bright background does not make much sense, maybe colourisation options of the package would be appropriate.

TextEditor.getScrollLeft is deprecated.

This is now a view method. Call TextEditorElement::getScrollLeft instead.

TextEditor.getScrollLeft (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:3538:12)
InputView.getColumnRangeForRow (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:391:49)
<unknown> (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:366:31)
Array.map (native)
InputView.getRowRanges (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:365:45)
InputView.loadPositions (/Users/samuelmburu/.atom/packages/easy-motion-redux/lib/views/input.js:343:40)

Uncaught TypeError: Cannot read property '0' of undefined

Really sorry but I'm not really sure what I was doing when this happened, maybe this is helpful anyway. Feel free to close if not.

Atom: 1.14.4 x64
Electron: 1.3.13
OS: Mac OS X 10.12.1
Thrown From: easy-motion-redux package 1.1.1

Stack Trace

Uncaught TypeError: Cannot read property '0' of undefined

At /Users/reem/.atom/packages/easy-motion-redux/lib/views/input.js:150

TypeError: Cannot read property '0' of undefined
    at InputView.confirm (/packages/easy-motion-redux/lib/views/input.js:150:41)
    at InputView.filterPositions (/packages/easy-motion-redux/lib/views/input.js:176:18)
    at InputView.autosubmit (/packages/easy-motion-redux/lib/views/input.js:117:14)

Commands

     -0:19.1.0 proton:chain (input.hidden-input)
     -0:19.1.0 window:focus-pane-on-right (atom-pane.pane.active)
     -0:18.6.0 proton:toggle (input.hidden-input)
     -0:18.4.0 proton:chain (input.hidden-input)
     -0:18.4.0 window:focus-pane-on-left (atom-pane.pane.active)
     -0:17.8.0 proton:toggle (input.hidden-input)
     -0:17.6.0 proton:chain (input.hidden-input)
     -0:17.6.0 window:focus-pane-on-right (atom-pane.pane.active)
     -0:17.1.0 proton:toggle (input.hidden-input)
     -0:16.9.0 proton:chain (input.hidden-input)
     -0:16.9.0 window:focus-pane-on-left (atom-pane.pane.active)
     -0:16.7.0 vim-mode-plus:move-right (input.hidden-input)
     -0:16.5.0 proton:toggle (input.hidden-input)
     -0:16.4.0 proton:chain (input.hidden-input)
     -0:16.4.0 window:focus-pane-on-right (atom-pane.pane.active)
     -0:15.7.0 vim-mode-plus:move-down (input.hidden-input)

Non-Core Packages

advanced-open-file 0.16.5 
atom-beautify 0.29.17 
atom-dark-fusion-syntax 2.0.3 
atom-elixir 0.2.2 
atom-material-syntax 1.0.2 
atom-material-ui 1.3.9 
atom-mdtoc 0.8.3 
atom-ternjs 0.18.2 
atomatigit 1.5.5 
autocomplete-bibtex 0.7.0 
autocomplete-modules 1.6.7 
autocomplete-paths 1.0.5 
autocomplete-python 1.8.60 
autoupdate-packages 1.3.1 
blame 0.10.2 
build 0.67.0 
build-cargo 2.0.0 
busy 0.7.0 
color-picker 2.2.5 
docblockr 0.9.1 
easy-motion-redux 1.1.1 
environment 1.3.1 
ex-mode 0.13.1 
expand-region 0.2.6 
expose 0.14.0 
file-icons 2.0.17 
fixmyjs 1.4.1 
git-history 3.2.0 
git-plus 7.3.3 
golden-ratio 0.3.0 
highlight-line 0.12.0 
highlight-selected 0.12.0 
iex 0.10.0 
ink 0.6.4 
javascript-snippets 1.2.1 
julia-client 0.5.12 
language-diff 0.7.0 
language-elixir 0.17.0 
language-julia 0.10.0 
language-latex 1.0.0 
language-rust 0.4.9 
latex 0.42.3 
latex-completions 0.3.2 
latexer 0.3.0 
lines 0.13.1 
linter 1.11.23 
linter-clojure 1.1.2 
linter-elixirc 1.3.0 
linter-eslint 8.1.3 
linter-flake8 2.1.4 
linter-jshint 3.0.3 
linter-markdown 3.1.0 
linter-rust 0.7.2 
markdown-scroll-sync 2.1.2 
markdown-writer 2.6.4 
maximize-panes 0.2.0 
merge-conflicts 1.4.4 
minimap 4.26.8 
move-panes 0.2.0 
nucleus-dark-ui 0.11.0 
Parinfer 1.17.0 
pdf-view 0.55.0 
platformio-ide-terminal 2.4.0 
project-plus 0.9.0 
proto-repl 1.4.16 
proton-mode 0.14.1 
python-isort 0.0.7 
python-tools 0.6.9 
python-yapf 0.13.0 
racer 0.20.0 
react 0.16.2 
react-snippets 0.7.1 
recent-files-fuzzy-finder 0.3.0 
relative-numbers 0.7.1 
release-notes 0.53.0 
tab-switcher 1.5.4 
theme-switch 0.4.0 
vim-mode-plus 0.83.0 
vim-mode-plus-ex-mode 0.9.0 
zentabs 0.8.8 

It doesn't work properly with folded lines

When you fold some functions it ignores everything after.

The issue is here:

for ( let iRow of _.range( iBeginRow, iEndRow + 1 ) ) {
if ( this.notFolded( iRow ) ) {
aResultingRows.push( iRow );
}
}

We should add visible lines until we get necessary amount of lines.

I can provide a PR once #30 is merged (because it contains some changes I need).

Example

2018-12-06 11-29-37

Support Non-ASCII Characters

Is it possible to support non-ASCII characters?
It would be super feature for text editing in languages other than English.

jump to character

Thanks for rewriting this package due to the deprecation warnings in the original package.

It would be awesome if features in this package could reach parity with vim's implementation.

One feature that I like is jumping to a character instead of word.

Use different alphabet by default

By default, we use "ABCDEF..." symbols for jumping across the text. But usually, people keep their fingers above "asdf" and "jkl;" keys. So I suggest to use them first by default.

See my current settings:
screen shot 2018-12-07 at 13 53 59

We may research what are most "accessible" keys and make them default.

Failed to load the easy-motion-redux package

It happens as soon as I open Atom

Atom Version: 1.8.0
System: Mac OS X 10.10.5
Thrown From: easy-motion-redux package, v1.1.1

Stack Trace

Failed to load the easy-motion-redux package

At Cannot find module 'atom-space-pen-views'

Error: Cannot find module 'atom-space-pen-views'
    at Module._resolveFilename (module.js:338:15)
    at Function.Module._resolveFilename (/Applications/Atom.app/Contents/Resources/app.asar/src/module-cache.js:383:52)
    at Function.Module._load (module.js:289:25)
    at Module.require (module.js:366:17)
    at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/Users/pborges/.atom/packages/easy-motion-redux/lib/views/input.js:17:26)
    at Module._compile (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.defineProperty.value [as .js] (/Applications/Atom.app/Contents/Resources/app.asar/src/compile-cache.js:208:21)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.<anonymous> (/Users/pborges/.atom/packages/easy-motion-redux/lib/main.js:3:43)
    at Module._compile (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:103:30)
    at Object.defineProperty.value [as .js] (/Applications/Atom.app/Contents/Resources/app.asar/src/compile-cache.js:208:21)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
    at Package.module.exports.Package.requireMainModule (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:715:27)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/package.js:117:28
    at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:92:15)
    at Package.module.exports.Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:106:12)
    at PackageManager.module.exports.PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:457:14)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:402:19
    at Config.module.exports.Config.transact (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:312:16)
    at PackageManager.module.exports.PackageManager.loadPackages (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:397:19)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/atom-environment.js:743:28

Commands

Config

{
  "core": {
    "disabledPackages": [
      "relative-numbers"
    ],
    "themes": [
      "nucleus-dark-ui",
      "atom-dark-fusion-syntax"
    ]
  },
  "easy-motion-redux": {
    "replaceCharacters": "abcdefghijklmnopqrstuvwxyz"
  }
}

Installed Packages

# User
atom-dark-fusion-syntax, v1.1.0
atomatigit, v1.5.5
autocomplete-paths, v1.0.2
autocomplete-ruby, v0.1.0
autoupdate-packages, v1.3.1
easy-motion-redux, v1.1.1
environment, v1.2.0
file-icons, v1.7.13
highlight-line, v0.11.1
highlight-selected, v0.11.2
language-diff, v0.4.0
linter, v1.11.4
linter-rubocop, v0.4.7
linter-ruby, v1.2.2
merge-conflicts, v1.4.4
nucleus-dark-ui, v0.8.2
project-plus, v0.9.0
proton-mode, v0.10.1
recent-files-fuzzy-finder, v0.2.4
release-notes, v0.53.0
ruby-block, v0.3.5
ruby-block-converter, v3.5.0
vim-mode-plus, v0.44.0
zentabs, v0.8.7

# Dev
No dev packages

Maintaining

@leny hey, thank you for your work on this package. It's pretty good!

But now I see that you are not able (have no time I guess) to support this package. I believe that you need to find a new contributor because it's published and useful package.

You can randomly ask your colleagues (or other contributors), there is a chance that someone can do it.

What do you think about?

TextEditor.onDidChangeScrollTop is deprecated.

This is now a view method. Call TextEditorElement::onDidChangeScrollTop instead.

TextEditor.onDidChangeScrollTop (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:697:12)
InputView.handleEvents (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:120:56)
InputView.initialize (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:77:18)
InputView.constructor (/Users/phil/.atom/packages/easy-motion-redux/node_modules/space-pen/lib/space-pen.js:184:25)
new InputView (/Users/phil/.atom/packages/easy-motion-redux/lib/views/input.js:56:79)
_fStart (/Users/phil/.atom/packages/easy-motion-redux/lib/main.js:29:18)

not working with Atom 1.6 ?

Installed it on Atom 1.6 and doesn't seem to be working, ideas?

EDIT: I'm using the developer version though, closing since this is not the stable

Uncaught TypeError: Cannot read property 'replace' of null

steps to reproduce

  1. try to select any symbol by 'easy-motion-redux:letter'
  2. realize that it's not that symbol that you want
  3. press Backspace

Atom Version: 1.8.0
System: Microsoft Windows 7 Enterprise
Thrown From: easy-motion-redux package, v1.1.1

Stack Trace

Uncaught TypeError: Cannot read property 'replace' of null

Can't select last "}" if it is a line end

  1. try to select last "}"
  2. fail
import Observer from './../helpers/observer.js'

export default class MainController extends Observer {
    init() {

    }
    onFirstLoad() {
        this.fire('update');
    }
    onItemClick(id) {
        this.fire('item selected', id);
    }
}

PS: works fine if you add some empty lines at the end of the file

Enhancement: allow to select text

I've used same plugin, which is worse, but it has an ability to select text with letter/word navigation. I hope it will be realised by this plugin too, as it's really cool! Thanks for it!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.