diff --git a/.eslintrc.js b/.eslintrc.js index 7a0172c35..a8bf32a6d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,7 +4,11 @@ module.exports = { commonjs: true, es2021: true, }, - extends: ["eslint:recommended", "plugin:node/recommended"], + extends: [ + "eslint:recommended", + "plugin:node/recommended", + "plugin:jsdoc/recommended" + ], overrides: [], parserOptions: { ecmaVersion: "latest" @@ -17,6 +21,9 @@ module.exports = { } ] }, + plugins: [ + "jsdoc" + ], globals: { atom: "writeable" } diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 000000000..e71f5fc29 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,42 @@ +name: Documentation + +on: + push: + branches: [ "master" ] + workflow_dispatch: + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + documentation: + runs-on: ubuntu-latest + permissions: + contents: write + + strategy: + matrix: + node-version: [16.x] + + steps: + - name: Checkout the Latest Code + uses: actions/checkout@v3 + + - name: Setup NodeJS - ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install Dependencies + run: yarn install + + - name: Generate Public JSDocs + run: yarn run js-docs + + - name: Generate Private JSDocs + run: yarn run private-js-docs + + - name: Commit All Changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: GH Action Documentation diff --git a/.github/workflows/editor-tests.yml b/.github/workflows/editor-tests.yml index 3bb601202..87bb6cd27 100644 --- a/.github/workflows/editor-tests.yml +++ b/.github/workflows/editor-tests.yml @@ -1,10 +1,10 @@ name: Editor tests on: - - push - pull_request env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + ATOM_JASMINE_REPORTER: list + jobs: tests: name: tests @@ -13,7 +13,8 @@ jobs: !startsWith(github.event.pull_request.title, '[skip-editor-ci]') strategy: matrix: - os: [ubuntu-20.04, macos-latest, windows-2019] + # os: [ubuntu-20.04, macos-latest, windows-2019] + os: [ubuntu-20.04, macos-latest] fail-fast: false runs-on: ${{ matrix.os }} steps: @@ -34,4 +35,4 @@ jobs: - name: Run tests uses: GabrielBB/xvfb-action@v1 with: - run: yarn start --test spec + run: node script/run-tests.js spec diff --git a/.github/workflows/package-tests-linux.yml b/.github/workflows/package-tests-linux.yml index af6961de1..c8353c4f0 100644 --- a/.github/workflows/package-tests-linux.yml +++ b/.github/workflows/package-tests-linux.yml @@ -1,9 +1,9 @@ name: Package tests for Pulsar on Linux on: - - push - pull_request env: - APM_PATH: ./apm/node_modules/atom-package-manager/bin/apm + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ATOM_JASMINE_REPORTER: list jobs: setup: name: Build Editor @@ -12,12 +12,6 @@ jobs: !startsWith(github.event.pull_request.title, '[skip-package-ci]') runs-on: ubuntu-20.04 steps: - - name: Install windows-build-tools - if: ${{ matrix.os == 'windows-latest' }} - run: | - npm i --global windows-build-tools@4.0.0 - npm config set msvs_version 2019 - - name: Checkout the latest code uses: actions/checkout@v2 @@ -35,60 +29,144 @@ jobs: - name: build dependencies run: yarn build:apm - - name: Cache node_modules - id: cache-node - uses: actions/cache@v3 - with: - path: node_modules - key: linux-modules-${{ hashFiles('package.json') }} + - name: build the editor + run: (yarn dist deb || yarn dist deb) && mv binaries/*deb pulsar.deb - - name: Cache apm - id: cache-apm + - name: Cache pulsar + id: cache-pulsar uses: actions/cache@v3 with: - path: apm - key: linux-apm-${{ hashFiles('apm/package.json') }} + path: pulsar.deb + key: pulsar-${{ github.sha }} test: - name: Test Packages + name: Package needs: setup runs-on: ubuntu-20.04 strategy: fail-fast: false + max-parallel: 8 matrix: include: - - filter: autocomplete|language - descr: syntax-related - - filter: dark|light - descr: themes - - filter: git-diff|go-to-line|grammar-selector|line-ending-selector|autoflow|autosave|symbols-view|spell-check|bracket-matcher|whitespace|wrap-guide|snippets|encoding-selector - descr: editor related - - filter: deprecation-cop|dev-live-reload|incompatible-packages|package-generator|exception-reporting|metrics|update-package-dependencies|styleguide - descr: development helpers - - filter: welcome|about|background-tips|tabs|tree-view|archive-view|markdown-preview|status-bar|settings-view|notifications - descr: UI elements - - filter: image-view|bookmarks|keybinding-resolver|link|timecop - descr: others + - package: "atom-dark-syntax" + - package: "atom-dark-ui" + - package: "atom-light-syntax" + - package: "atom-light-ui" + - package: "base16-tomorrow-dark-theme" + - package: "base16-tomorrow-light-theme" + - package: "one-dark-ui" + - package: "one-light-ui" + - package: "one-dark-syntax" + - package: "one-light-syntax" + - package: "solarized-dark-syntax" + - package: "solarized-light-syntax" + - package: "about" + - package: "archive-view" + - package: "autocomplete-atom-api" + - package: "autocomplete-css" + - package: "autocomplete-html" + - package: "autocomplete-plus" + - package: "autocomplete-snippets" + - package: "autoflow" + - package: "autosave" + - package: "background-tips" + - package: "bookmarks" + - package: "bracket-matcher" + - package: "command-palette" + - package: "dalek" + - package: "deprecation-cop" + - package: "dev-live-reload" + - package: "encoding-selector" + - package: "exception-reporting" + - package: "find-and-replace" + - package: "fuzzy-finder" + - package: "github" + - package: "git-diff" + - package: "go-to-line" + - package: "grammar-selector" + - package: "image-view" + - package: "incompatible-packages" + - package: "keybinding-resolver" + - package: "line-ending-selector" + - package: "link" + - package: "markdown-preview" + - package: "notifications" + - package: "open-on-github" + - package: "package-generator" + - package: "settings-view" + - package: "snippets" + - package: "spell-check" + - package: "status-bar" + - package: "styleguide" + - package: "symbols-view" + - package: "tabs" + - package: "timecop" + - package: "tree-view" + - package: "update-package-dependencies" + - package: "welcome" + - package: "whitespace" + - package: "wrap-guide" + - package: "language-c" + - package: "language-clojure" + - package: "language-coffee-script" + - package: "language-csharp" + - package: "language-css" + - package: "language-gfm" + - package: "language-git" + - package: "language-go" + - package: "language-html" + - package: "language-hyperlink" + - package: "language-java" + - package: "language-javascript" + - package: "language-json" + - package: "language-less" + - package: "language-make" + - package: "language-mustache" + - package: "language-objective-c" + - package: "language-perl" + - package: "language-php" + - package: "language-property-list" + - package: "language-python" + - package: "language-ruby" + - package: "language-ruby-on-rails" + - package: "language-rust-bundled" + - package: "language-sass" + - package: "language-shellscript" + - package: "language-source" + - package: "language-sql" + - package: "language-text" + - package: "language-todo" + - package: "language-toml" + - package: "language-typescript" + - package: "language-xml" + - package: "language-yaml" steps: - name: Checkout the latest code uses: actions/checkout@v2 + - name: Setup NodeJS + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Install Dependencies + run: yarn install || yarn install - - name: Restore node_modules from Cache - id: restore-node + - name: Build Dependencies + run: yarn build || yarn build + + - name: Restore pulsar from Cache + id: restore-pulsar uses: actions/cache@v3 with: - path: node_modules - key: linux-modules-${{ hashFiles('package.json') }} + path: pulsar.deb + key: pulsar-${{ github.sha }} - - name: Restore apm from Cache - id: restore-apm - uses: actions/cache@v3 - with: - path: apm - key: linux-apm-${{ hashFiles('apm/package.json') }} + - name: Install Pulsar + run: sudo dpkg -i pulsar.deb && sudo apt-get -f install -y - - name: Run Package Tests for ${{ matrix.descr }} - uses: GabrielBB/xvfb-action@v1 - with: - run: node -e "require('./script/run-package-tests')(/${{ matrix.filter }}/)" + - name: Install xvfb + run: sudo apt-get install -y xvfb + + - name: Run ${{ matrix.package }} Tests + run: Xvfb :1 & cd node_modules/${{ matrix.package }} && if test -d spec; then DISPLAY=:1 pulsar --test spec; fi + # run: node -e "require('./script/run-package-tests')(/${{ matrix.package }}/)" diff --git a/CHANGELOG.md b/CHANGELOG.md index 8843fb37c..f22070349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,304 @@ -# Pulsar next version +# Changelog + +- Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +- Format defined in [Pulsar Change Log](PENDING_APPROVAL) +- Project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) + +## [Unreleased] + +## 1.102.0 + +- Fixed a bug where `pulsar` on Windows could never trigger +- Fixed `github` package shelling out to `git` on macOS +- Fixed minor bugs found during fixes to tests +- Improved our testing infastructure to aide in finding and fixing further bugs +- Updated many dependencies of Pulsar and its core packages +- New Pulsar Icon on macOS +- Selected text is styled by default +- Restored `right-clicked` CSS class on tags +- Fixed syntax highlighting on C++ +- Updated JavaScript snippets to modern ES6 syntax +- PPM no longer assumes `master` for git branches + +### Pulsar +- Added: implement signing and notarizing for macOS, PR #4 lol [@Meadowsys](https://github.com/pulsar-edit/pulsar/pull/387) +- Fixed: Pin `python` brew installation to `3.10` during MacOS Intel Cirrus Build [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/384) +- Update: Bump `ppm` to `a46537c0b7f0eaaef5404ef88003951fdc988c65` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/383) +- Added: Add new macOS icon [@mdibella-dev](https://github.com/pulsar-edit/pulsar/pull/372) +- Fixed: type $ as # [@Meadowsys](https://github.com/pulsar-edit/pulsar/pull/378) +- Update: deps: Update github to v0.36.14-pretranspiled-take-2 [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/375) +- Added: add style to selected text by default [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/238) +- Added: Set Max Concurrent Package Tests [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/376) +- Fixed: c++ fixes [@icecream17](https://github.com/pulsar-edit/pulsar/pull/369) +- Update: deps: Update github to v0.36.14-pretranspiled [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/373) +- Update `coffeescript` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/361) +- Updated: Misc Dependency Updates [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/362) +- Added: Bundle `autocomplete-plus` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/358) +- Fixed: Add LICENSE.md to extra resources (resourcesPath) [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/354) +- Fixed: Get Windows `pulsar` Working [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/340) +- Fixed: Restore `right-clicked` class on a right-clicked tab [@savetheclocktower](https://github.com/pulsar-edit/pulsar/pull/368) +- Updated: ppm: Update submodule to commit 4645ba2905747897b0 [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/371) +- Added: Machine decaf tabs spec [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/367) +- Added: Manually Decaf `tabs` package Specs [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/357) +- Fixed: Uncomment and fix a settings-view package test [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/366) +- Added: Decaf Changes from Manual and Machine Decaf to Main [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/356) +- Added: Manual decafe tabs [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/352) +- Added: Organize failing tests [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/307) +- Fixed: autocomplete-snippets: Fix repo URL [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/341) +- Updated: update apm message to pulsar -p [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/337) +- Fixed: Replace incorrect spellings of 'macOS' with the correct one [@mdibella-dev](https://github.com/pulsar-edit/pulsar/pull/336) +- Changed: use `let` and `const` in js snippets [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/326) +- Fixed: Fix URI to correct address [@mdibella-dev](https://github.com/pulsar-edit/pulsar/pull/335) +- Updated: update copyright year (2023) [@icecream17](https://github.com/pulsar-edit/pulsar/pull/332) + +### ppm +- Fixed: fix: Don't assume `master` when checking git packages for upgrades [@savetheclocktower](https://github.com/pulsar-edit/ppm/pull/56) +- Fixed: meta: Normalize package.json and lockfile line endings [@DeeDeeG](https://github.com/pulsar-edit/ppm/pull/54) +- Update: spec: Fixtures Node v10.20.1 --> Electron v12.2.3 [@DeeDeeG](https://github.com/pulsar-edit/ppm/pull/52) +- Fixed: Fix .com links, pulsar rebranding and rebranding readme [@Daeraxa](https://github.com/pulsar-edit/ppm/pull/48) + +### github +- Fixed: lib: Rebrand getAtomAppName() function (fix shelling out to `git` on macOS) [@DeeDeeG](https://github.com/pulsar-edit/github/pull/13) +- Fixed: meta: Revert "main" to "./lib/index", no dist (fix package on `master` branch) [@DeeDeeG](https://github.com/pulsar-edit/github/pull/12) + +## 1.101.0-beta + +- Fixed a bug where macOS menus like "Open" don't do anything +- Fixed a bug where macOS wouldn't open files by dragging them onto the dock. +- Fixed a bug where devtools won't open (https://github.com/pulsar-edit/pulsar/issues/260) +- Fixed a bug where the editor refused to open with the message "GPU process +isn't usable. Goodbye" (https://github.com/pulsar-edit/pulsar/issues/233) +- Fixed logo artifacts on Linux +- Fixed Windows Taskbar Icon being 'Cut in Half' +- Fixed commands like `--version`, `--package` or `--help` did not show outputs +- Fixed additional flags not being sent to `--package` +- Small improvement on the binary size +- Fixed "install command line tools" on Mac and Windows +- Cached queries for featured packages (featured packages will load faster, and +fewer errors on the settings-view regarding package info) +- Added warning when `settings-view` is disabled, describing how to re-enable it + +### Pulsar +- Added: script: Clean up `pulsar` and `ppm` on uninstall [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/297) +- Added: increase search query delay [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/289) +- Fixed: update `packages/README.md` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/317) +- Fixed: Fix Windows Icon being cut in half [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/318) +- Removed: remove unused json [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/309) +- Added: add ignored `package-lock.json` to packages [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/308) +- Rebrand: Rebrand AppUserModelID - Ensure Pulsar is separated as its own App Icon on Windows [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/315) +- Removed: remove fs-plus from image-view package [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/305) +- Added: Additional Bundling of Core Packages [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/314) +- Fixed: Resolve some `about` package tests (6 Resolved Tests) [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/310) +- Fixed: Fix Package Test Cache Issue [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/302) +- Fixed: Resolve all Tests within `language-html` (Resolves 2 Failing Tests) [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/300) +- Fixed: Resolve all Tests within `language-javascript` (Resolves 24 Failing Tests) [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/299) +- Fixed: Resolve 40 Failing `image-view` Tests [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/293) +- Added: Added changelog entries that we missed [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/292) +- Removed: meta: Delete preinstall script from package.json [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/296) +- Added: Improve macOS Builds [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/280) +- Fixed: Fix `archive-view` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/294) +- Added: Improved Windows Builds [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/279) +- Added: More Bundles [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/290) +- Fixed: Fix macOS open without window [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/291) +- Removed: delete workflow from language-java [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/285) +- Removed: Remove handlers for opening things on Mac [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/288) +- Rebrand: Rebranding and relinking to new site [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/282) +- Added: script: symlink ppm in post-install.sh (for .deb and .rpm packages) [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/273) +- Added: Add --no-sandbox to start script [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/276) +- Added: exclude directories from build [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/265) +- Added: add warning when settings-view is disabled [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/243) +- Fixed: Fix typo [@snowcatridge10](https://github.com/pulsar-edit/pulsar/pull/267) +- Fixed: Fix install on packaged code [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/269) +- Fixed: Fix Logo weirdness [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/271) +- Fixed: Fix installing shell commands to path (macOS) [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/263) +- Fixed: 🍎 Fix wrong app name resolution in pulsar.sh on Mac [@soupertonic](https://github.com/pulsar-edit/pulsar/pull/252) +- Fixed: Postinstall error with rm usr/bin/pulsar [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/228) +- Added: Made changes to the main.js file. [@CatPerson136](https://github.com/pulsar-edit/pulsar/pull/232) +- Added: Add `--no-sandbox` to Linux Launch [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/262) +- Removed: removed unused files [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/219) +- Rebrand: rebrand package publish domain [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/245) +- Removed: remove metrics code from welcome package [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/244) +- Fixed: Deep cache for settings view [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/250) +- Fixed: fix syntax error in `packages/README.md` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/248) +- Removed: remove package.json dependencies [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/169) +- Added: `underscore-plus` to dependencies [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/218) + +### ppm +- Added: Convert body params to query params [@Spiker985](https://github.com/pulsar-edit/ppm/pull/47) +- Fixed: src: Update Electron header download URL [@DeeDeeG](https://github.com/pulsar-edit/ppm/pull/43) + +## v1.100.0-beta + - Bump to Electron 12 and Node 14 -- Added a rebranded API +- Added a rebranding API - Removed experimental file watchers on the editor - Ability to install packages from git repositories -- New backend -- Better error messages when we can't install a package +- New Pulsar Package Repository Backend +- Better error messages when installing a package fails - Config watching fixes - Bump tree-sitter to 0.20.1 and all grammars to their recent versions -- Native support for Apple Silicon -- Change Log Window added to Welcome Package +- Native support for Apple Silicon and ARM Linux +- Removed Benchmark Startup Mode +- Removed all telemetry from Core Editor +- New Pulsar Website +- New Test Runner to Improve Testing +- Added Apple Silicon support to `github` Package v0.36.13 -# Atom v1.6.0 -See https://atom.io/releases +### Pulsar +- Added: Incorporate settings-view to core [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/220) +- Added: Bundle `autocomplete-css` && `autocomplete-html` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/212) +- Added: add or update `packages/*/package-lock.json` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/209) +- Fixed: Organize our Exclusions/Inclusions [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/208) +- Added: Bundle `package-generator` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/207) +- Fixed: meta: Don't exclude 'loophole' or 'pegjs' packages [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/206) +- Fixed: Fix `dugite` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/201) +- Bumped: ppm: Update ppm submodule (new Electron headers download URL) [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/198) +- Removed: Revert "Merge pull request #184 from pulsar-edit/bump-autocomplete-plus" [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/196) +- Bumped: Bump GitHub package [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/186) +- Fixed: CI (Windows): Use npm (not yarn) to install ppm [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/185) +- Bumped: Bumped `autocomplete-plus` [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/184) +- Added: Adding test runner missing files [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/183) +- Fixed: fix about package test [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/180) +- Added: Add tar.gz target to electron-builder [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/178) +- Fixed: Cleanup/standardize pulsar.sh [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/175) +- Fixed: Update LICENSE.md [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/171) +- Removed: remove old scripts [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/168) +- Fixed: Fix Codacy Ignore [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/167) +- Added: New ChangeLog Format [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/166) +- Fixed: shorten task description if too long [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/163) +- Fixed: Improve Package Tests [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/161) +- Removed: Metric docs from `welcome` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/159) +- Fixed: PostInstall of `ppm` [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/153) +- Fixed: Unmerged Menus ignoring separators [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/151) +- Removed: `mkdirp` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/150) +- Fixed: `--package` exiting incorrectly [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/149) +- Bumped: `ppm` submodule [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/144) +- Fixed: undefined `nsole` [@jonian](https://github.com/pulsar-edit/pulsar/pull/142) +- Fixed: Git tab in Binaries [@benonymus](https://github.com/pulsar-edit/pulsar/pull/140) +- Fixed: `yarn.lock` versions [@jonian](https://github.com/pulsar-edit/pulsar/pull/139) +- Added: `dist` & `binaries` to `gitignore` [@jonain](https://github.com/pulsar-edit/pulsar/pull/138) +- Bumped: `ppm` submodule to allow Git Package Install [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/131) +- Bumped: `settings-view` 0.261.9 -> 0.261.10 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/130) +- Removed: Unused code fragments from build scripts [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/128) +- Added: Ability to run `ppm` from `pulsar` CLI [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/125) +- Fixed: base16 URL to use WayBack Machine [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/121) +- Removed: `fs-plus` from `exception-reporting` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/118) +- Removed: Benchmark Startup Mode Part 2 [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/115) +- Removed: Unused scripts [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/114) +- Bumped: `background-tips` 0.28.0 -> 0.28.1 [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/111) +- Removed: Tooling bloat [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/110) +- Bumped: `snippets` NA -> 1.6.1 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/107) +- Removed: Benchmark Startup mode [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/105) +- Added: Binaries for Intel Mac & ARM Linux [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/101) +- Added: `yarn dist` accepts arguments [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/97) +- Fixed: Load core packages `README.md` [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/96) +- Fixed: Unlock terminal on Linux [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/82) +- Added: Aliases to workflow for link generation [@kaosine](https://github.com/pulsar-edit/pulsar/pull/78) +- Fixed: Hooked `NSFW` directly [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/77) +- Bumped: `settings-view` 0.261.8 -> 0.261.9 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/72) +- Bumped: `.nvmrc` 12.18 -> 16 [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/71) +- Bumped: `ppm` submodule for new backend [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/68) +- Removed: Experimental and internal watchers [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/67) +- Fixed: Improvements for windows binaries [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/66) +- Fixed: Improvements for binary building [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/63) +- Bumped: `async` 3.2.0 -> 3.2.4 [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/59) +- Removed: Mystery/Ghost Submodule [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/51) +- Removed: Telemetry and Remote Crash Reports [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/40) +- Added: Bundled `language-c` into the editor [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/33) +- Bumped: `electron` 11.5.0 -> 12.2.3 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/28) +- Fixed: `yarn install` due to syntax error [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/16) +- Added: Bundled most language grammars into the editor [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/14) +- Bumped: `autocomplete-html` 0.8.8 -> 0.8.9 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/14) +- Bumped: `tree-sitter` NA -> 0.20.0 [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/14) +- Added: Branding Config on Global Atom API [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/7) +- Added: `yarn` as method to build editor. [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/6) +- Bumped: `fs-admin` 0.15.0 -> 0.19.0 [@kaosine](https://github.com/pulsar-edit/pulsar/pull/4) +- Bumped: `text-buffer` 13.18.5 -> 13.18.6 [@kaosine](https://github.com/pulsar-edit/pulsar/pull/4) +- Decaffeinate: Numerous efforts from many contributors to decaffeinate the editor: + * [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/112) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/45) + * [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/29) + * [@fabianfiorotto](https://github.com/pulsar-edit/pulsar/pull/13) +- Rebrand: Numerous efforts from many contributors to rebrand the editor: + * [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/190) + * [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/173) + * [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/172) + * [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/156) + * [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/145) + * [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/136) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/126) + * [@ElectronicsArchiver](https://github.com/pulsar-edit/pulsar/pull/123) + * [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/122) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/120) + * [@Sertonix](https://github.com/pulsar-edit/pulsar/pull/103) + * [@Daeraxa](https://github.com/pulsar-edit/pulsar/pull/83) + * [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/81) + * [@kaosine](https://github.com/pulsar-edit/pulsar/pull/65) + * [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/58) + * [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/54) + * [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/22) + * [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/17) + * [@softcode589](https://github.com/pulsar-edit/pulsar/pull/11) + * [@LandarXT](https://github.com/pulsar-edit/pulsar/pull/10) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/8) +- Tests: Numerous efforts from many contributors to improve our tests: + * [@icecream17](https://github.com/pulsar-edit/pulsar/pull/152) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/141) + * [@DeeDeeG](https://github.com/pulsar-edit/pulsar/pull/116) + * [@Spiker985](https://github.com/pulsar-edit/pulsar/pull/109) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/70) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/50) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/48) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/46) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/42) + * [@confused-Techie](https://github.com/pulsar-edit/pulsar/pull/41) + * [@fabianfiorotto](https://github.com/pulsar-edit/pulsar/pull/36) + * [@fabianfiorotto](https://github.com/pulsar-edit/pulsar/pull/35) + * [@mauricioszabo](https://github.com/pulsar-edit/pulsar/pull/18) + +### ppm +- Fixed: ppm PostInstall [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/41) +- Added: Better `help` command display [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/40) +- Fixed: Empty Featured Packages [@jonian](https://github.com/pulsar-edit/ppm/pull/38) +- Fixed: Use ppm as basename in `getResourcePath` [@jonain](https://github.com/pulsar-edit/ppm/pull/36) +- Fixed: Installation from Git [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/34) +- Added: Ability to define tag to install [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/13) +- Added: Our new Pulsar Package Repository Backend [@confused-Techie](https://github.com/pulsar-edit/ppm/pull/5) +- Bumped: `electron` to 12 [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/2) +- Rebrand: Numerous efforts from many contributors to rebrand ppm: + * [@Sertonix](https://github.com/pulsar-edit/ppm/pull/12) + * [@softcode589](https://github.com/pulsar-edit/ppm/pull/7) + * [@mauricioszabo](https://github.com/pulsar-edit/ppm/pull/6) +- Tests: Numerous efforts from many contributors to improve our tests: + * [@DeeDeeG](https://github.com/pulsar-edit/ppm/pull/39) + +### autocomplete-html +- Fixed: Finding the proper Node version [@mauricioszabo](https://github.com/pulsar-edit/autocomplete-html/pull/1) + +### settings-view +- Added: Remember Scroll Position [@jonian](https://github.com/pulsar-edit/settings-view/pull/12) +- Removed: Support for deprecated packages [@Sertonix](https://github.com/pulsar-edit/settings-view/pull/6) +- Added: Better errors when search fails [@mauricioszabo](https://github.com/pulsar-edit/settings-view/pull/2) +- Rebrand: Numerous efforts from many contributors to rebrand settings-view: + * [@mauricioszabo](https://github.com/pulsar-edit/settings-view/pull/7) + * [@softcode589](https://github.com/pulsar-edit/settings-view/pull/3) + * [@mauricioszabo](https://github.com/pulsar-edit/settings-view/pull/1) +- Tests: Numerous efforts from many contributors to improve our tests: + * [@confused-Techie](https://github.com/pulsar-edit/settings-view/pull/10) + +### snippets +- Added: Proper Testing [@confused-Techie](https://github.com/pulsar-edit/snippets/pull/4) +- Removed: `fs-plus` [@Sertonix](https://github.com/pulsar-edit/snippets/pull/2) +- Fixed: Fix open Snippets URI [@Sertonix](https://github.com/pulsar-edit/snippets/pull/1) + +### background-tips +- Bumped: `background-tips` 0.28.0 -> 0.28.1 [@confused-Techie](https://github.com/pulsar-edit/background-tips/pull/4) +- Rebrand: Numerous efforts from many contributors to rebrand background-tips: + * [@Sertonix](https://github.com/pulsar-edit/background-tips/pull/5) + * [@Sertonix](https://github.com/pulsar-edit/background-tips/pull/2) + * [@Sertonix](https://github.com/pulsar-edit/background-tips/pull/1) + + +## Atom v1.6.0 + +- See https://atom.io/releases diff --git a/Dockerfile b/Dockerfile index d36f26bc8..339eb4dcb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # VERSION: 0.2 -# DESCRIPTION: Image to build Atom +# DESCRIPTION: Image to build Pulsar FROM ubuntu:20.04 diff --git a/LICENSE.md b/LICENSE.md index fe0f45349..50a586694 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Pulsar-Edit +Copyright (c) 2022-2023 Pulsar-Edit Original work copyright (c) 2011-2022 GitHub Inc. Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/README.md b/README.md index db7de4566..149f4f8b9 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,13 @@
-*A Community-led Hyper-Hackable Text Editor, built on **[Electron]**,* -*and based on everything we love about our favorite editors.* +*A Community-led Hyper-Hackable Text Editor,* +*Forked from [Atom], built on [Electron].* -*We designed it to be deeply customizable, but still* +*Designed to be deeply customizable, but still* *approachable using the default configuration.* +

@@ -44,6 +45,7 @@ [OpenCollective]: https://opencollective.com/pulsar-edit [Discussions]: https://github.com/orgs/pulsar-edit/discussions [Electron]: https://github.com/electron/electron +[Atom]: https://github.blog/2022-06-08-sunsetting-atom/ [Discord]: https://discord.gg/7aEbB9dGRT 'Join the Pulsar Discord today!' [Crowdin]: https://crowdin.pulsar-edit.dev [Status]: https://cirrus-ci.com/github/pulsar-edit/pulsar/master @@ -64,7 +66,7 @@ -[Preview]: https://user-images.githubusercontent.com/378023/49132478-f4b77680-f31f-11e8-9e10-e8454d8d9b7e.png 'Preview of the editor.' +[Preview]: resources/readme.png 'Preview of the editor.' diff --git a/docs/.jsdoc.json b/docs/.jsdoc.json new file mode 100644 index 000000000..fae020030 --- /dev/null +++ b/docs/.jsdoc.json @@ -0,0 +1,11 @@ +{ + "recurseDepth": 10, + "source": { + "include": ["src", "packages"], + "exclude": ["node_modules"], + "excludePattern": "((^|\\/|\\\\)_|node_modules)" + }, + "opts": { + "recurse": true + } +} diff --git a/docs/Pulsar-API-Documentation.md b/docs/Pulsar-API-Documentation.md new file mode 100644 index 000000000..f5e7e39b7 --- /dev/null +++ b/docs/Pulsar-API-Documentation.md @@ -0,0 +1,298 @@ +## Classes + +
+
AtomEnvironment
+

Pulsar global for dealing with packages, themes, menus, and the window.

+

An instance of this class is always available as the atom global.

+
+
Clipboard
+
+
+ +## Constants + +
+
etch
+
+
fs
+
+
dalek
+
+
assert
+
+
+ +## Functions + +
+
beforeEach()
+
+
beforeEach()
+
+
conditionPromise()
+
+
destroy()
+
+
destroyChildren()
+
+
releaseChildren()
+
+
subscribeToRepository()
+
+
updateDiffs()
+
+
beforeEach()
+
+
beforeEach()
+
+
beforeEach()
+
+
conditionPromise()
+
+
beforeEach()
+
+
+ + + +## AtomEnvironment +Pulsar global for dealing with packages, themes, menus, and the window. + +An instance of this class is always available as the `atom` global. + +**Kind**: global class + +* [AtomEnvironment](#AtomEnvironment) + * _instance_ + * [.clipboard](#AtomEnvironment+clipboard) : [Clipboard](#Clipboard) + * [.deserializers](#AtomEnvironment+deserializers) : DeserializerManager + * [.views](#AtomEnvironment+views) : ViewRegistry + * [.notifications](#AtomEnvironment+notifications) : NotificationManager + * [.config](#AtomEnvironment+config) : Config + * [.keymaps](#AtomEnvironment+keymaps) : KeymapManager + * [.tooltips](#AtomEnvironment+tooltips) : TooltipManager + * [.commands](#AtomEnvironment+commands) : CommandRegistry + * [.grammars](#AtomEnvironment+grammars) : GrammarRegistry + * [.styles](#AtomEnvironment+styles) : StyleManager + * [.packages](#AtomEnvironment+packages) : PackageManager + * [.themes](#AtomEnvironment+themes) : ThemeManager + * [.menu](#AtomEnvironment+menu) : MenuManager + * [.contextMenu](#AtomEnvironment+contextMenu) : ContextMenuManager + * [.project](#AtomEnvironment+project) : Project + * [.textEditors](#AtomEnvironment+textEditors) : TextEditorRegistry + * [.workspace](#AtomEnvironment+workspace) : Workspace + * [.history](#AtomEnvironment+history) : HistoryManager + * _Messaging the User_ + * [.beep()](#AtomEnvironment+beep) + * _static_ + * _Event Subscription_ + * [.onDidBeep(callback)](#AtomEnvironment.onDidBeep) ⇒ Disposable + + + +### atomEnvironment.clipboard : [Clipboard](#Clipboard) +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.deserializers : DeserializerManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.views : ViewRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.notifications : NotificationManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.config : Config +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.keymaps : KeymapManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.tooltips : TooltipManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.commands : CommandRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.grammars : GrammarRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.styles : StyleManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.packages : PackageManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.themes : ThemeManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.menu : MenuManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.contextMenu : ContextMenuManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.project : Project +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.textEditors : TextEditorRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.workspace : Workspace +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.history : HistoryManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.beep() +Visually and audibly trigger a beep. + +**Kind**: instance method of [AtomEnvironment](#AtomEnvironment) +**Category**: Messaging the User +**Emits**: event:beep + + +### AtomEnvironment.onDidBeep(callback) ⇒ Disposable +Invoke the given callback whenever [::beep](::beep) is called. + +**Kind**: static method of [AtomEnvironment](#AtomEnvironment) +**Returns**: Disposable - on which `.dispose()` can be called to unsubscribe. +**Category**: Event Subscription + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | Function to be called whenever [::beep](::beep) is called. | + + + +## Clipboard +**Kind**: global class + + +### new Clipboard() +Represents the clipboard used for copying and pasting in Pulsar. + +An instance of this class is always available as the `atom.clipboard` global. + +**Example** +```js +// returns 'hello' +atom.clipboard.write('hello'); + +console.log(atom.clipboard.read()); +``` + + +## etch +**Kind**: global constant +**Jsx**: etch.dom + + +## fs +**Kind**: global constant +**Babel**: + + +## dalek +**Kind**: global constant +**Babel**: + + +## assert +**Kind**: global constant +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## conditionPromise() +**Kind**: global function +**Babel**: + + +## destroy() +**Kind**: global function +**Describe**: Handles tear down of destructables and subscriptions. + Does not handle release of memory. This method should only be called + just before this object is freed, and should only tear down the main + object components that are guarunteed to exist at all times. + + +## destroyChildren() +**Kind**: global function +**Describe**: Destroys this objects children (non-freeing), it's intended + to be an ease-of use function for maintaing this object. This method + should only tear down objects that are selectively allocated upon + repository discovery. + + Example: this.diffs only exists when we have a repository. + + +## releaseChildren() +**Kind**: global function +**Describe**: The memory releasing complement function of `destroyChildren`. + frees the memory allocated at all child object storage locations + when there is no repository. + + +## subscribeToRepository() +**Kind**: global function +**Describe**: handles all subscriptions based on the repository in focus + + +## updateDiffs() +**Kind**: global function +**Describe**: Uses text markers in the target editor to visualize + git modifications, additions, and deletions. The current algorithm + just redraws the markers each call. + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## conditionPromise() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: diff --git a/docs/Source-Code-Documentation.md b/docs/Source-Code-Documentation.md new file mode 100644 index 000000000..f19274580 --- /dev/null +++ b/docs/Source-Code-Documentation.md @@ -0,0 +1,306 @@ +## Classes + +
+
AtomEnvironment
+

Pulsar global for dealing with packages, themes, menus, and the window.

+

An instance of this class is always available as the atom global.

+
+
Clipboard
+
+
+ +## Constants + +
+
etch
+
+
fs
+
+
dalek
+
+
assert
+
+
+ +## Functions + +
+
beforeEach()
+
+
beforeEach()
+
+
conditionPromise()
+
+
destroy()
+
+
destroyChildren()
+
+
releaseChildren()
+
+
subscribeToRepository()
+
+
updateDiffs()
+
+
beforeEach()
+
+
beforeEach()
+
+
beforeEach()
+
+
conditionPromise()
+
+
beforeEach()
+
+
+ + + +## AtomEnvironment +Pulsar global for dealing with packages, themes, menus, and the window. + +An instance of this class is always available as the `atom` global. + +**Kind**: global class + +* [AtomEnvironment](#AtomEnvironment) + * _instance_ + * [.clipboard](#AtomEnvironment+clipboard) : [Clipboard](#Clipboard) + * [.deserializers](#AtomEnvironment+deserializers) : DeserializerManager + * [.views](#AtomEnvironment+views) : ViewRegistry + * [.notifications](#AtomEnvironment+notifications) : NotificationManager + * [.config](#AtomEnvironment+config) : Config + * [.keymaps](#AtomEnvironment+keymaps) : KeymapManager + * [.tooltips](#AtomEnvironment+tooltips) : TooltipManager + * [.commands](#AtomEnvironment+commands) : CommandRegistry + * [.grammars](#AtomEnvironment+grammars) : GrammarRegistry + * [.styles](#AtomEnvironment+styles) : StyleManager + * [.packages](#AtomEnvironment+packages) : PackageManager + * [.themes](#AtomEnvironment+themes) : ThemeManager + * [.menu](#AtomEnvironment+menu) : MenuManager + * [.contextMenu](#AtomEnvironment+contextMenu) : ContextMenuManager + * [.project](#AtomEnvironment+project) : Project + * [.textEditors](#AtomEnvironment+textEditors) : TextEditorRegistry + * [.workspace](#AtomEnvironment+workspace) : Workspace + * [.history](#AtomEnvironment+history) : HistoryManager + * _Messaging the User_ + * [.beep()](#AtomEnvironment+beep) + * _static_ + * [.preloadPackages](#AtomEnvironment.preloadPackages) ℗ + * _Event Subscription_ + * [.onDidBeep(callback)](#AtomEnvironment.onDidBeep) ⇒ Disposable + + + +### atomEnvironment.clipboard : [Clipboard](#Clipboard) +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.deserializers : DeserializerManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.views : ViewRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.notifications : NotificationManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.config : Config +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.keymaps : KeymapManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.tooltips : TooltipManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.commands : CommandRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.grammars : GrammarRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.styles : StyleManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.packages : PackageManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.themes : ThemeManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.menu : MenuManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.contextMenu : ContextMenuManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.project : Project +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.textEditors : TextEditorRegistry +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.workspace : Workspace +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.history : HistoryManager +**Kind**: instance property of [AtomEnvironment](#AtomEnvironment) + + +### atomEnvironment.beep() +Visually and audibly trigger a beep. + +**Kind**: instance method of [AtomEnvironment](#AtomEnvironment) +**Category**: Messaging the User +**Emits**: event:beep + + +### AtomEnvironment.preloadPackages ℗ +Returns output of `preloadPackages()` for this Classes Instance of `Packages`. + +**Kind**: static property of [AtomEnvironment](#AtomEnvironment) +**Access**: private + + +### AtomEnvironment.onDidBeep(callback) ⇒ Disposable +Invoke the given callback whenever [::beep](::beep) is called. + +**Kind**: static method of [AtomEnvironment](#AtomEnvironment) +**Returns**: Disposable - on which `.dispose()` can be called to unsubscribe. +**Category**: Event Subscription + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | Function to be called whenever [::beep](::beep) is called. | + + + +## Clipboard +**Kind**: global class + + +### new Clipboard() +Represents the clipboard used for copying and pasting in Pulsar. + +An instance of this class is always available as the `atom.clipboard` global. + +**Example** +```js +// returns 'hello' +atom.clipboard.write('hello'); + +console.log(atom.clipboard.read()); +``` + + +## etch +**Kind**: global constant +**Jsx**: etch.dom + + +## fs +**Kind**: global constant +**Babel**: + + +## dalek +**Kind**: global constant +**Babel**: + + +## assert +**Kind**: global constant +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## conditionPromise() +**Kind**: global function +**Babel**: + + +## destroy() +**Kind**: global function +**Describe**: Handles tear down of destructables and subscriptions. + Does not handle release of memory. This method should only be called + just before this object is freed, and should only tear down the main + object components that are guarunteed to exist at all times. + + +## destroyChildren() +**Kind**: global function +**Describe**: Destroys this objects children (non-freeing), it's intended + to be an ease-of use function for maintaing this object. This method + should only tear down objects that are selectively allocated upon + repository discovery. + + Example: this.diffs only exists when we have a repository. + + +## releaseChildren() +**Kind**: global function +**Describe**: The memory releasing complement function of `destroyChildren`. + frees the memory allocated at all child object storage locations + when there is no repository. + + +## subscribeToRepository() +**Kind**: global function +**Describe**: handles all subscriptions based on the repository in focus + + +## updateDiffs() +**Kind**: global function +**Describe**: Uses text markers in the target editor to visualize + git modifications, additions, and deletions. The current algorithm + just redraws the markers each call. + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: + + +## conditionPromise() +**Kind**: global function +**Babel**: + + +## beforeEach() +**Kind**: global function +**Babel**: diff --git a/dot-atom/init.js b/dot-atom/init.js index 3465e69d2..4c190b2c2 100644 --- a/dot-atom/init.js +++ b/dot-atom/init.js @@ -11,3 +11,7 @@ // console.log(`Saved! ${editor.getPath()}`) // ) // ); +// +// See the Pulsar Launch manual for more information on this file and how to +// customize it. +// https://pulsar-edit.dev/docs/launch-manual/sections/core-hacking/#the-init-file diff --git a/dot-atom/keymap.cson b/dot-atom/keymap.cson index a785f6717..9930c2935 100644 --- a/dot-atom/keymap.cson +++ b/dot-atom/keymap.cson @@ -18,15 +18,15 @@ # 'ctrl-p': 'core:move-down' # # You can find more information about keymaps in these guides: -# * http://flight-manual.atom.io/using-atom/sections/basic-customization/#customizing-keybindings -# * http://flight-manual.atom.io/behind-atom/sections/keymaps-in-depth/ +# * https://pulsar-edit.dev/docs/launch-manual/sections/using-pulsar/#customizing-keybindings +# * https://pulsar-edit.dev/docs/launch-manual/sections/behind-pulsar#keymaps-in-depth # # If you're having trouble with your keybindings not working, try the # Keybinding Resolver: `Cmd+.` on macOS and `Ctrl+.` on other platforms. See the # Debugging Guide for more information: -# * http://flight-manual.atom.io/hacking-atom/sections/debugging/#check-the-keybindings +# * https://pulsar-edit.dev/docs/launch-manual/sections/core-hacking/#check-your-keybindings # # This file uses CoffeeScript Object Notation (CSON). # If you are unfamiliar with CSON, you can read more about it in the -# Pulsar Flight Manual: -# http://flight-manual.atom.io/using-atom/sections/basic-customization/#configuring-with-cson +# Pulsar Launch Manual: +# https://pulsar-edit.dev/docs/launch-manual/sections/using-pulsar/#configuring-with-cson diff --git a/dot-atom/snippets.cson b/dot-atom/snippets.cson index 879dd2ad4..644ca58b6 100644 --- a/dot-atom/snippets.cson +++ b/dot-atom/snippets.cson @@ -17,5 +17,5 @@ # # This file uses CoffeeScript Object Notation (CSON). # If you are unfamiliar with CSON, you can read more about it in the -# Pulsar Flight Manual: -# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson +# Pulsar Launch Manual: +# https://pulsar-edit.dev/docs/launch-manual/sections/using-pulsar/#configuring-with-cson diff --git a/dot-atom/styles.less b/dot-atom/styles.less index e4fad4f31..6a451554f 100644 --- a/dot-atom/styles.less +++ b/dot-atom/styles.less @@ -1,10 +1,10 @@ /* * Your Stylesheet * - * This stylesheet is loaded when Atom starts up and is reloaded automatically + * This stylesheet is loaded when Pulsar starts up and is reloaded automatically * when it is changed and saved. * - * Add your own CSS or Less to fully customize Atom. + * Add your own CSS or Less to fully customize Pulsar. * If you are unfamiliar with Less, you can read more about it here: * http://lesscss.org */ diff --git a/hooks/README.md b/hooks/README.md new file mode 100644 index 000000000..b18ace024 --- /dev/null +++ b/hooks/README.md @@ -0,0 +1,25 @@ +### Contents +| Filename | Description | +| - | - | +| post-checkout | This hook executes after a branch checkout, or branch switch has occurred. | +| post-merge | This hook executes after a branch merge has occurred | +| update_editor.sh | The actual brains of the hooks. Performs a yarn install, yarn build, yarn build:apm, and syncs all submodules. | + +### Disclaimer +These hooks are not guaranteed. These were made out of convenience and presented to the org as an optional tool for usage. + +### Usage +There are several ways to apply these hooks: +- You can manually copy the files over to the `/.git/hooks` folder and validate that they are executable - the effect should be immediate. This is the preferred option for Windows. +- You can use manage_hooks.sh to copy/symlink the hooks you choose. This is the preferred option for Linux/macOS. + - Your mileage may vary on macOS as it has not been tested outright, but should work in theory. + +### Instructions +- Open your favorite terminal +- Navigate to `/hooks`. + - IMPORTANT: The bash completions will only work within this directory, and are activated when using exactly `./manage-hooks.sh`. +- If you have bash-completions, source the `manage_hooks-completion.bash` file to allow for auto-complete ie `source manage_hooks-completion.bash`. +- Allow the auto-complete responses to guide you. +- Standard commands are `list`, `install` and `remove` +- The `install` and `remove` commands require the hook you wish to install, followed by an optional parameter for `copy` vs `symlink` with symlink being the default. + - A symbolically linked hook allows you to receive updates in the future. If you plan on adjusting your hook(s), you probably want to `copy` the files to the `/.git/hooks` directory diff --git a/hooks/manage_hooks-completion.bash b/hooks/manage_hooks-completion.bash new file mode 100644 index 000000000..8e105e0b9 --- /dev/null +++ b/hooks/manage_hooks-completion.bash @@ -0,0 +1,59 @@ +#!/bin/bash + +#Not gonna lie, this is some magical stuff, but I will try to explain it + +#Automatic variables used by complete +#COMPREPLY = An array of autocompletions to pass back to the shell +#COMP_WORDS = The passed-in list of parameters +#COMP_CWORD = The index of the current word as related to the count of +#parameters + +#compgen = Generates an array of autocompletions to pass back to the shell +#based on provided parameters + +function __completion() { + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="list install remove" + + #Determine what "level" of autocomplete we are operating on + #1 is no params + #2 is 1 param, in this instance the command + #3 etc + case ${COMP_CWORD} in + 1) + #Generate a Word-list from opts from the current word + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + 2) + case ${prev} in + install) + #Generate a list of filenames (and append "all") based on the current + #directory and current word while ignoring select files + COMPREPLY=( $(compgen -W "all $(ls --ignore='*.md' --ignore='*.sh' --ignore='*.bash')" -- ${cur}) ) + ;; + remove) + #Generate a list of filenames (and append "all") based on the + #.git/hooks directory and current word while ignoring the sample + #files + COMPREPLY=( $(compgen -W "all $(ls ../.git/hooks --ignore='*.sample')" -- ${cur}) ) + ;; + esac + ;; + 3) + case "${COMP_WORDS[COMP_CWORD-2]}" in + install) + #When attempting to autocomplete for the third parameter ie copy + #/symbolic AND the command is install + #Generate a list of Words from the provded string + COMPREPLY=( $(compgen -W "copy symbolic" -- ${cur}) ) + ;; + esac + ;; + esac +} + +#Use the function defined above, when an autocomplete event for +#./manage_hooks.sh is fired. This is why you must be in the proper directory +complete -F __completion ./manage_hooks.sh diff --git a/hooks/manage_hooks.sh b/hooks/manage_hooks.sh new file mode 100755 index 000000000..b64295939 --- /dev/null +++ b/hooks/manage_hooks.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +USAGEMSG="Usage: manage_hooks