flight-manual.atom.io icon indicating copy to clipboard operation
flight-manual.atom.io copied to clipboard

Chapter 3 - Hacking Atom

Open schacon opened this issue 10 years ago • 5 comments

The third chapter content will be structured as a series of increasingly complex cookbook like examples, each introducing a new API or Atom development feature. The end of the chapter will have an appendix which indexes the features and APIs covered by utility instead, so you can search for examples of specific types of functionality if you wish.

Here is the current model of the outline of the chapter.

  • Cookbook
    • [x] Word Count Package (Basic) #3
    • [ ] Word Count Status Bar (status bar manipulation)
    • [ ] Go To Line Package (simple with feedback and cursor movement)
    • [ ] Open On GitHub - (no UI, just run command)
    • [ ] Snippets - (modify text in a buffer)
    • [ ] Linter - (modify text in a buffer, shell to external command)
    • [ ] Preview Pane (add a panel)
    • [ ] Fuzzy Finder (modal and open file in new tab)
    • [ ] Tree View / Mini-map (add a sidebar panel)
    • [ ] Status Bar (add small panel)
    • [ ] Git-Log / Settings View (standalone UI in tab)
    • [ ] Git-status / Bookmarks (decorate gutter)
    • [ ] Autocomplete / Color picker (in-context UI)
    • [ ] Vim-mode (editor remapping)
    • [ ] Image View (file type rendering handler)
    • [ ] GitHub Markdown (language grammar)
    • [ ] Unity UI (UI theme)
  • [ ] Advanced Dev Tools
  • [ ] Maintaining Packages
  • [ ] Best practices (patterns and anti-patterns)

We want to make sure to include examples of:

  • [ ] scopes
  • [ ] views / models
  • [ ] settings
  • [ ] notifications package
  • [ ] config api
  • [ ] subscriptions
  • [ ] creating dom elements
  • [ ] runners
  • [ ] configure my package
  • [ ] add application menu/context menu
  • [ ] get all the editors
  • [ ] understand when the active editor changes
  • [ ] background tasks
  • [ ] messages to the user
  • [ ] dialogs
  • [ ] advanced keymaps
  • [ ] serialization
  • [ ] converting textmate bundles
  • [ ] decorations
  • [ ] modal panel
  • [ ] modal decorations
  • [ ] notifications

This issue is sort of a master plan for the chapter, which will be implemented in multiple PRs.

schacon avatar Jan 21 '15 13:01 schacon

@atom/core if you all have any ideas or suggestions for better examples or other types of things you would like covered, please let me know so I can update the outline.

schacon avatar Jan 21 '15 13:01 schacon

Forgive me if I've missed it, but I don't see anything here about the services API, which is something that I would really like to dig into.

reference: atom/atom#5165

hoosierhobbyist avatar Mar 12 '15 21:03 hoosierhobbyist

I would like to see a recipe on how to

  • Open a new text editor in a new tab
  • Set a given grammar for it
  • Add some text to it

I think it would show how the core pieces fits together.

vegar avatar Mar 17 '15 12:03 vegar

#@image

SEXITILLION avatar Aug 24 '20 21:08 SEXITILLION

#@image

SEXITILLION avatar Aug 24 '20 21:08 SEXITILLION