Merge pull request #54 from pulsar-edit/rebrand-and-bump-electron-to-12

Rebrand and bump to electron to 12
This commit is contained in:
Maurício Szabo 2022-09-16 19:18:15 -03:00 committed by GitHub
commit 2d6f6a37af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
145 changed files with 2059 additions and 9265 deletions

114
.cirrus.yml Normal file
View File

@ -0,0 +1,114 @@
linux_task:
container:
image: node:lts-slim
memory: 8G
test_script:
- apt-get update
- export DEBIAN_FRONTEND="noninteractive"
- apt-get install -y
rpm
build-essential
git
libsecret-1-dev
fakeroot
libx11-dev
libxkbfile-dev
libgdk-pixbuf2.0-dev
libgtk-3-dev
libxss-dev
libasound2-dev
libnss3
xvfb
- git submodule init
- git submodule update
- sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json
- yarn install || yarn install
- yarn build
- yarn run build:apm
- Xvfb :99 & DISPLAY=:99 PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list
always:
videos_artifacts:
path: ./tests/videos/**
junit_artifacts:
path: report.xml
type: text/xml
format: junit
build_binary_script:
- yarn dist || rm dist && yarn dist
binary_artifacts:
path: ./binaries/*
silicon_mac_task:
macos_instance:
image: ghcr.io/cirruslabs/macos-monterey-base:latest
memory: 8G
test_script:
- sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json
- brew install node@16 yarn git python
- git submodule init
- git submodule update
- ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python
- export PATH="/opt/homebrew/bin:/opt/homebrew/opt/node@16/bin:$PATH"
- yarn install || yarn install
- yarn build
- yarn run build:apm
- PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list
always:
videos_artifacts:
path: ./tests/videos/**
junit_artifacts:
path: report.xml
type: text/xml
format: junit
build_arm_binary_script:
- export PATH="/opt/homebrew/bin:/opt/homebrew/opt/node@16/bin:$PATH"
- yarn dist || rm dist && yarn dist
binary_artifacts:
path: ./binaries/*
build_x86_dependencies_script:
- echo A | softwareupdate --install-rosetta
- arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- export PATH="/usr/local/bin:$PATH"
- arch -x86_64 brew install node@16 yarn git python
- export PATH="/usr/local/opt/node@16/bin:/usr/local/bin/python3:$PATH"
- yarn install || yarn install
- ln -s /usr/local/opt/python3 /usr/local/bin/python
- arch -x86_64 npx yarn install || arch -x86_64 npx yarn install
- arch -x86_64 npx yarn build
- arch -x86_64 npx yarn run build:apm
dist_x86_binary_script:
- export PATH="/opt/homebrew/bin:/opt/homebrew/opt/node@16/bin:$PATH"
- sudo rm -rf /Library/Developer/CommandLineTools
- arch -x86_64 xcode-select --install
- arch -x86_64 npx yarn dist || rm dist && arch -x86_64 npx yarn dist
binary_artifacts:
path: ./binaries/*
windows_task:
windows_container:
image: cirrusci/windowsservercore:visualstudio2019-2021.12.07
env:
CIRRUS_SHELL: bash
PATH: C:\Python310\Scripts\;C:\Python310\;%PATH%;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Users\User\AppData\Local\Microsoft\WindowsApps;C:\Users\User\AppData\Roaming\npm;C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\
install_deps_script:
- git submodule init
- git submodule update
- choco install nodejs --version=16.16.0 -y
- choco install python git visualstudio2019-workload-vctools -y
- npm config set python 'C:\Python310\python.exe'
build_apm_script:
- cd apm; npx yarn install || sleep 1 && npx yarn install || sleep 2 && npx yarn cache clean; npx yarn install || sleep 2 && npx yarn install || sleep 2 && npx yarn cache clean; npx yarn install || sleep 2 && npx yarn install
- ./node_modules/pulsar-package-manager/bin/npm rebuild || sleep 1 && ./node_modules/pulsar-package-manager/bin/npm rebuild || sleep 2 && ./node_modules/pulsar-package-manager/bin/npm rebuild || sleep 4 && ./node_modules/pulsar-package-manager/bin/npm rebuild
test_script:
- npx yarn install --ignore-scripts || sleep 1 && npx yarn install --ignore-scripts || sleep 2 && npx yarn cache clean; npx yarn install --ignore-scripts || sleep 2 && npx yarn install --ignore-scripts || echo "Giving up"
- rm -R node_modules/electron
- npx yarn install || sleep 1 && npx yarn install || sleep 2 && npx yarn cache clean; npx yarn install || sleep 2 && npx yarn install || echo "Giving up"
- npx yarn build
# - npx playwright test --reporter=list
videos_artifacts:
path: tests\videos\**
build_binary_script:
- sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json
- npx yarn dist || npx yarn dist || npx yarn dist
binary_artifacts:
path: .\binaries\*

View File

@ -0,0 +1,91 @@
name: Package tests for Pulsar on Linux
on:
- push
- pull_request
env:
APM_PATH: ./apm/node_modules/atom-package-manager/bin/apm
jobs:
setup:
name: setup
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
- name: Setup node
uses: actions/setup-node@v2-beta
with:
node-version: 16
- name: install dependencies
run: yarn install
- name: build dependencies
run: yarn build
- name: build dependencies
run: yarn build:apm
- name: cache node module
id: cache-node
uses: actions/cache@v3
with:
path: node_modules
key: linux-modules-${{ hashFiles('package.json') }}
- name: cache APM module
id: cache-apm
uses: actions/cache@v3
with:
path: apm
key: linux-apm-${{ hashFiles('apm/package.json') }}
test:
strategy:
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
fail-fast: false
name: test ${{ matrix.descr }} packages
runs-on: ubuntu-20.04
needs: setup
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
- name: restore node module
id: restore-node
uses: actions/cache@v3
with:
path: node_modules
key: linux-modules-${{ hashFiles('package.json') }}
- name: cache APM module
id: restore-apm
uses: actions/cache@v3
with:
path: apm
key: linux-apm-${{ hashFiles('apm/package.json') }}
- name: Run ${{ matrix.descr }} packages' tests
uses: GabrielBB/xvfb-action@v1
with:
run: node -e "require('./script/run-package-tests')(/${{ matrix.filter }}/)"

View File

@ -1,37 +0,0 @@
name: Package tests for Pulsar
on:
- push
- pull_request
jobs:
tests:
name: tests
strategy:
matrix:
os: [ubuntu-20.04, macos-latest, windows-2019]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v2-beta
with:
node-version: 16
- name: install dependencies
run: yarn install
- name: build dependencies
run: yarn build
- name: Run the tests on sane OSes
uses: GabrielBB/xvfb-action@v1
if: ${{ !contains(matrix.os, 'windows') }}
with:
run: node script/run-package-tests.js
- name: Run the tests on Windows
if: ${{ contains(matrix.os, 'windows') }}
continue-on-error: true # due to https://github.com/atom/github/pull/2459#issuecomment-624725972
run: node script\run-package-tests.js

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "ppm"]
path = ppm
url = https://github.com/pulsar-edit/ppm.git

View File

@ -21,8 +21,8 @@ RUN apt-get update && \
npm && \
rm -rf /var/lib/apt/lists/*
# Update npm and dependencies
RUN npm install -g npm --loglevel error
COPY . /pulsar
WORKDIR /pulsar
# Use python2 by default
RUN npm config set python /usr/bin/python2 -g

View File

@ -1,5 +0,0 @@
target=v12.18.3
node-version=12.18.3
package-lock=true
prefer-frozen-lockfile=true
strict-peer-dependencies=false

View File

@ -1,2 +0,0 @@
This folder is where [apm](https://github.com/atom/apm) is installed to so that
it is bundled with Atom.

4608
apm/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
{
"name": "pulsar-bundled-apm",
"description": "Pulsar's bundled apm",
"repository": {
"type": "git",
"url": "https://github.com/pulsar-edit/pulsar.git"
},
"dependencies": {
"ppm": "https://github.com/pulsar-edit/ppm.git"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2,4 +2,4 @@
On this directory, we can include things that we found out how they work, and how do we want to handle that in the future
- [Tree Sitter](tree-sitter.md), the tokenizer for the Atom Text Editor
- [Tree Sitter](tree-sitter.md), the tokenizer for the Pulsar Text Editor

2
dot-atom/.gitignore vendored
View File

@ -5,4 +5,4 @@ storage
.apm
.node-gyp
.npm
.atom-socket-secret-*
.pulsar-socket-secret-*

View File

@ -1,6 +1,6 @@
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# Pulsar will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#

View File

@ -1,14 +1,14 @@
# Your keymap
#
# Atom keymaps work similarly to style sheets. Just as style sheets use
# selectors to apply styles to elements, Atom keymaps use selectors to associate
# Pulsar keymaps work similarly to style sheets. Just as style sheets use
# selectors to apply styles to elements, Pulsar keymaps use selectors to associate
# keystrokes with events in specific contexts. Unlike style sheets however,
# each selector can only be declared once.
#
# You can create a new keybinding in this file by typing "key" and then hitting
# tab.
#
# Here's an example taken from Atom's built-in keymap:
# Here's an example taken from Pulsar's built-in keymap:
#
# 'atom-text-editor':
# 'enter': 'editor:newline'
@ -28,5 +28,5 @@
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# Pulsar Flight Manual:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#configuring-with-cson

View File

@ -1,6 +1,6 @@
# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# Pulsar snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
@ -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
# Atom Flight Manual:
# Pulsar Flight Manual:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson

53
integration/helpers.js Normal file
View File

@ -0,0 +1,53 @@
const os = require('os')
const path = require('path')
const p = require('playwright')
const electron = p._electron
const { expect } = require('@playwright/test')
async function openAtom(profilePath, videoName) {
const env = process.env
env.ATOM_HOME = path.join("tmp", profilePath)
env.APM_PATH = path.join("apm", "node_modules", "pulsar-package-manager", "bin", "apm")
const config = {
args: ["--no-sandbox", "."],
cwd: ".",
env: env,
timeout: 10000
}
if(process.env.CI) {
config.recordVideo = {
dir: path.join('tests', 'videos', videoName)
}
}
const app = await electron.launch(config)
const page = await app.firstWindow()
await expect(page.locator('.tab-bar').first()).toBeVisible()
return {app, page}
}
async function runCommand({page}, command) {
if(os.platform() === 'darwin') {
await page.locator('atom-workspace').press('Meta+Shift+p')
} else {
await page.locator('atom-workspace').press('Control+Shift+p')
}
await expect(page.locator('atom-panel.modal:visible')).toBeVisible()
const palette = page.locator('.command-palette atom-text-editor.is-focused')
await palette.type(command)
await page.locator('.selected div', { hasText: command }).first().click()
await expect(page.locator('.modal:visible')).toBeHidden()
}
async function typeInEditor({page}, locator, text) {
const editor = page.locator(`${locator} atom-text-editor.is-focused`)
await expect(editor).toBeVisible()
await editor.type(text)
}
module.exports = {
openAtom,
runCommand,
typeInEditor
}

View File

View File

@ -0,0 +1,113 @@
const os = require('os')
const {openAtom, runCommand, typeInEditor} = require('./helpers')
const { test, expect } = require('@playwright/test')
const languages = [
{language: "JavaScript", code: 'function aFunction() { 10 }', checks: {numeric: '10', name: 'aFunction'}},
{language: "Ruby", code: 'def a_function\n 10\nend', checks: {numeric: '10', name: 'a_function'}},
{language: "Java", code: 'public int blah { return 10; }', checks: {numeric: '10', type: 'int'}},
{language: "C", code: '10', checks: {numeric: '10'}},
{language: "Clojure", code: '10', checks: {numeric: '10'}},
{language: "CoffeeScript", code: '10', checks: {numeric: '10'}},
{language: "C#", code: '10', checks: {numeric: '10'}},
// {language: "css", code: '10', checks: {numeric: '10'}},
// {language: "gfm", code: '10', checks: {numeric: '10'}},
// {language: "git", code: '10', checks: {numeric: '10'}},
{language: "Go", code: '10', checks: {numeric: '10'}},
{language: "HTML", code: '<foo type="10"></foo>', checks: {string: '10'}},
{language: "XML", code: '<foo type="10"></foo>', checks: {string: '"10"'}},
// {language: "hyperlink", code: '10', checks: {numeric: '10'}},
{language: "JSON", code: '10', checks: {numeric: '10'}},
// {language: "less", code: '10', checks: {numeric: '10'}},
// {language: "make", code: '10', checks: {numeric: '10'}},
// {language: "mustache", code: '10', checks: {numeric: '10'}},
{language: "Objective C", code: '10', checks: {numeric: '10'}},
{language: "Perl", code: '10', checks: {numeric: '10'}},
{language: "PHP", code: '<? 10 %>', checks: {numeric: '10'}},
// {language: "property-list", code: '10', checks: {numeric: '10'}},
{language: "Python", code: '10', checks: {numeric: '10'}},
{language: "Ruby on Rails", code: '10', checks: {numeric: '10'}},
{language: "Rust", code: '10', checks: {numeric: '10'}},
// {language: "sass", code: '10', checks: {numeric: '10'}},
{language: "Shell Script", code: 'a="10"', checks: {variable: 'a', string: '"10"'}},
// {language: "source", code: '10', checks: {numeric: '10'}},
{language: "SQL", code: '10', checks: {numeric: '10'}},
// {language: "text", code: '10', checks: {numeric: '10'}},
// {language: "todo", code: '10', checks: {numeric: '10'}},
// {language: "toml", code: '10', checks: {numeric: '10'}},
{language: "Typescript", code: '10', checks: {numeric: '10'}},
{language: "YAML", code: 'a: 10', checks: {numeric: '10'}},
]
let editor
test.describe('Opening Atom for the first time', () => {
test.beforeAll(async () => {
editor = await openAtom("atom-home-tests", "opening-first-time")
})
test.afterAll(async () => {
const closing = editor.app.close()
await closing
})
test('the editor opens at the welcome page', async () => {
const workspace = editor.page.locator('atom-workspace')
await expect(workspace).toHaveText(/A hackable text editor/, {
useInnerText: true,
})
})
// FIXME: mock backend, Atom's servers are unreliable!
// test('allows to search for packages', async () => {
// await runCommand(editor, 'Settings View: Open')
// await editor.page.locator('a.icon', { hasText: 'Install' }).click()
// await typeInEditor(editor, '.packages', "language-javascript")
// await expect(editor.page.locator('.package-name', { hasText: 'language-javascript' }).first())
// .toBeVisible()
// })
test.describe('the editor have syntax highlight', async () => {
test.beforeAll(async () => {
const workspace = editor.page.locator('atom-workspace')
await expect(workspace).toHaveText(/A hackable text editor/, {
useInnerText: true,
})
await runCommand(editor, 'Tabs: Close All Tabs')
})
test.afterEach(async () => {
if(os.platform() === 'darwin') {
await editor.page.keyboard.press('Meta+a')
} else {
await editor.page.keyboard.press('Control+a')
}
await editor.page.keyboard.press('Delete')
await runCommand(editor, 'Tabs: Close Tab')
})
languages.forEach(({language, code, checks}) => {
test(`for ${language}`, async () => {
await runCommand(editor, 'Application: New File')
await editor.page.locator('atom-text-editor.is-focused').type(code)
await editor.page.locator('grammar-selector-status').click()
const modalInput = editor.page.locator(".modal:visible atom-text-editor.is-focused")
await modalInput.type(language)
await modalInput.press('Enter')
await Promise.all(
Object.keys(checks).map(k =>
expect(syntaxElement(k, checks[k])).toHaveText(checks[k])
)
)
})
})
})
})
function syntaxElement(kind, text) {
return editor.page.locator(
`atom-text-editor.is-focused .syntax--${kind}`,
{ hasText: text }
)
}

View File

@ -6,7 +6,7 @@
'shift-end': 'editor:select-to-end-of-line'
'atom-text-editor:not([mini])':
# Atom Specific
# Pulsar Specific
'ctrl-shift-c': 'editor:copy-path'
'alt-up': 'editor:select-larger-syntax-node'
'alt-down': 'editor:select-smaller-syntax-node'

View File

@ -17,7 +17,7 @@
'ctrl-h': 'core:backspace'
'ctrl-d': 'core:delete'
# Atom Specific
# Pulsar Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
'up': 'core:move-up'
@ -83,12 +83,12 @@
'cmd--': 'window:decrease-font-size'
'cmd-0': 'window:reset-font-size'
'cmd-k up': 'pane:split-up-and-copy-active-item' # Atom Specific
'cmd-k down': 'pane:split-down-and-copy-active-item' # Atom Specific
'cmd-k left': 'pane:split-left-and-copy-active-item' # Atom Specific
'cmd-k right': 'pane:split-right-and-copy-active-item' # Atom Specific
'cmd-k cmd-w': 'pane:close' # Atom Specific
'cmd-k alt-cmd-w': 'pane:close-other-items' # Atom Specific
'cmd-k up': 'pane:split-up-and-copy-active-item' # Pulsar Specific
'cmd-k down': 'pane:split-down-and-copy-active-item' # Pulsar Specific
'cmd-k left': 'pane:split-left-and-copy-active-item' # Pulsar Specific
'cmd-k right': 'pane:split-right-and-copy-active-item' # Pulsar Specific
'cmd-k cmd-w': 'pane:close' # Pulsar Specific
'cmd-k alt-cmd-w': 'pane:close-other-items' # Pulsar Specific
'cmd-k cmd-p': 'window:focus-previous-pane'
'cmd-k cmd-n': 'window:focus-next-pane'
'cmd-k cmd-up': 'window:focus-pane-above'
@ -128,7 +128,7 @@
'ctrl-e': 'editor:move-to-end-of-line'
'ctrl-k': 'editor:cut-to-end-of-line'
# Atom Specific
# Pulsar Specific
'ctrl-shift-w': 'editor:select-word'
'cmd-ctrl-left': 'editor:move-selection-left'
'cmd-ctrl-right': 'editor:move-selection-right'
@ -163,7 +163,7 @@
'ctrl-alt-delete': 'editor:delete-to-end-of-subword'
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
# Pulsar specific
'alt-cmd-z': 'editor:checkout-head-revision'
'cmd-<': 'editor:scroll-to-cursor'
'alt-cmd-ctrl-f': 'editor:fold-selection'
@ -186,8 +186,8 @@
'cmd-alt-[': 'editor:fold-current-row'
'cmd-alt-]': 'editor:unfold-current-row'
'cmd-alt-{': 'editor:fold-all' # Atom Specific
'cmd-alt-}': 'editor:unfold-all' # Atom Specific
'cmd-alt-{': 'editor:fold-all' # Pulsar Specific
'cmd-alt-}': 'editor:unfold-all' # Pulsar Specific
'cmd-k cmd-0': 'editor:unfold-all'
'cmd-k cmd-1': 'editor:fold-at-indent-level-1'
'cmd-k cmd-2': 'editor:fold-at-indent-level-2'

View File

@ -1,5 +1,5 @@
'body':
# Atom Specific
# Pulsar Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
'up': 'core:move-up'
@ -65,12 +65,12 @@
'ctrl-_': 'window:decrease-font-size'
'ctrl-0': 'window:reset-font-size'
'ctrl-k up': 'pane:split-up-and-copy-active-item' # Atom Specific
'ctrl-k down': 'pane:split-down-and-copy-active-item' # Atom Specific
'ctrl-k left': 'pane:split-left-and-copy-active-item' # Atom Specific
'ctrl-k right': 'pane:split-right-and-copy-active-item' # Atom Specific
'ctrl-k ctrl-w': 'pane:close' # Atom Specific
'ctrl-k ctrl-alt-w': 'pane:close-other-items' # Atom Specific
'ctrl-k up': 'pane:split-up-and-copy-active-item' # Pulsar Specific
'ctrl-k down': 'pane:split-down-and-copy-active-item' # Pulsar Specific
'ctrl-k left': 'pane:split-left-and-copy-active-item' # Pulsar Specific
'ctrl-k right': 'pane:split-right-and-copy-active-item' # Pulsar Specific
'ctrl-k ctrl-w': 'pane:close' # Pulsar Specific
'ctrl-k ctrl-alt-w': 'pane:close-other-items' # Pulsar Specific
'ctrl-k ctrl-p': 'window:focus-previous-pane'
'ctrl-k ctrl-n': 'window:focus-next-pane'
'ctrl-k ctrl-up': 'window:focus-pane-above'
@ -114,7 +114,7 @@
'ctrl-l': 'editor:select-line'
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
# Pulsar specific
'ctrl-<': 'editor:scroll-to-cursor'
'ctrl-alt-shift-[': 'editor:fold-selection'
@ -133,8 +133,8 @@
'ctrl-alt-[': 'editor:fold-current-row'
'ctrl-alt-]': 'editor:unfold-current-row'
'ctrl-alt-{': 'editor:fold-all' # Atom Specific
'ctrl-alt-}': 'editor:unfold-all' # Atom Specific
'ctrl-alt-{': 'editor:fold-all' # Pulsar Specific
'ctrl-alt-}': 'editor:unfold-all' # Pulsar Specific
'ctrl-k ctrl-0': 'editor:unfold-all'
'ctrl-k ctrl-1': 'editor:fold-at-indent-level-1'
'ctrl-k ctrl-2': 'editor:fold-at-indent-level-2'

View File

@ -3,7 +3,7 @@
'ctrl-pageup': 'pane:show-previous-item'
'ctrl-pagedown': 'pane:show-next-item'
# Atom Specific
# Pulsar Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
'up': 'core:move-up'
@ -70,12 +70,12 @@
'ctrl-_': 'window:decrease-font-size'
'ctrl-0': 'window:reset-font-size'
'ctrl-k up': 'pane:split-up-and-copy-active-item' # Atom Specific
'ctrl-k down': 'pane:split-down-and-copy-active-item' # Atom Specific
'ctrl-k left': 'pane:split-left-and-copy-active-item' # Atom Specific
'ctrl-k right': 'pane:split-right-and-copy-active-item' # Atom Specific
'ctrl-k ctrl-w': 'pane:close' # Atom Specific
'ctrl-k ctrl-alt-w': 'pane:close-other-items' # Atom Specific
'ctrl-k up': 'pane:split-up-and-copy-active-item' # Pulsar Specific
'ctrl-k down': 'pane:split-down-and-copy-active-item' # Pulsar Specific
'ctrl-k left': 'pane:split-left-and-copy-active-item' # Pulsar Specific
'ctrl-k right': 'pane:split-right-and-copy-active-item' # Pulsar Specific
'ctrl-k ctrl-w': 'pane:close' # Pulsar Specific
'ctrl-k ctrl-alt-w': 'pane:close-other-items' # Pulsar Specific
'ctrl-k ctrl-p': 'window:focus-previous-pane'
'ctrl-k ctrl-n': 'window:focus-next-pane'
'ctrl-k ctrl-up': 'window:focus-pane-above'
@ -119,7 +119,7 @@
'ctrl-l': 'editor:select-line'
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
# Pulsar specific
'ctrl-<': 'editor:scroll-to-cursor'
'ctrl-alt-shift-[': 'editor:fold-selection'
@ -136,8 +136,8 @@
'ctrl-alt-[': 'editor:fold-current-row'
'ctrl-alt-]': 'editor:unfold-current-row'
'ctrl-alt-{': 'editor:fold-all' # Atom Specific
'ctrl-alt-}': 'editor:unfold-all' # Atom Specific
'ctrl-alt-{': 'editor:fold-all' # Pulsar Specific
'ctrl-alt-}': 'editor:unfold-all' # Pulsar Specific
'ctrl-k ctrl-0': 'editor:unfold-all'
'ctrl-k ctrl-1': 'editor:fold-at-indent-level-1'
'ctrl-k ctrl-2': 'editor:fold-at-indent-level-2'

View File

@ -1,8 +1,8 @@
'menu': [
{
label: 'Atom'
label: 'Pulsar'
submenu: [
{ label: 'About Atom', command: 'application:about' }
{ label: 'About Pulsar', command: 'application:about' }
{ label: 'View License', command: 'application:open-license' }
{ label: 'VERSION', enabled: false }
{ label: 'Restart and Install Update', command: 'application:install-update', visible: false}
@ -22,11 +22,11 @@
{ type: 'separator' }
{ label: 'Services', role: 'services', submenu: [] }
{ type: 'separator' }
{ label: 'Hide Atom', command: 'application:hide' }
{ label: 'Hide Pulsar', command: 'application:hide' }
{ label: 'Hide Others', command: 'application:hide-other-applications' }
{ label: 'Show All', command: 'application:unhide-all-applications' }
{ type: 'separator' }
{ label: 'Quit Atom', command: 'application:quit' }
{ label: 'Quit Pulsar', command: 'application:quit' }
]
}
{

View File

@ -199,7 +199,7 @@
{ label: 'Report Issue', command: 'application:report-issue' }
{ label: 'Search Issues', command: 'application:search-issues' }
{ type: 'separator' }
{ label: 'About Atom', command: 'application:about' }
{ label: 'About Pulsar', command: 'application:about' }
{ type: 'separator' }
]
}

View File

@ -202,7 +202,7 @@
{ label: 'Report Issue', command: 'application:report-issue' }
{ label: 'Search Issues', command: 'application:search-issues' }
{ type: 'separator' }
{ label: 'About Atom', command: 'application:about' }
{ label: 'About Pulsar', command: 'application:about' }
{ type: 'separator' }
]
}

View File

@ -1,6 +1,8 @@
{
"name": "atom",
"productName": "Atom",
"name": "pulsar",
"author": "Pulsar-Edit",
"productName": "Pulsar",
"author": "Pulsar Community <noreply@pulsar-edit.com>",
"version": "1.63.0-dev",
"description": "A hackable text editor for the 21st Century.",
"branding": {
@ -12,13 +14,13 @@
"main": "./src/main-process/main.js",
"repository": {
"type": "git",
"url": "https://github.com/atom/atom.git"
"url": "https://github.com/pulsar-edit/pulsar.git"
},
"bugs": {
"url": "https://github.com/atom/atom/issues"
"url": "https://github.com/pulsar-edit/pulsar/issues"
},
"license": "MIT",
"electronVersion": "11.5.0",
"electronVersion": "12.2.3",
"dependencies": {
"@atom/fuzzy-native": "^1.2.1",
"@atom/source-map-support": "^0.3.4",
@ -39,8 +41,8 @@
"autocomplete-plus": "https://codeload.github.com/atom/autocomplete-plus/legacy.tar.gz/refs/tags/v2.42.4",
"autocomplete-snippets": "https://codeload.github.com/atom/autocomplete-snippets/legacy.tar.gz/refs/tags/v1.12.1",
"autoflow": "file:packages/autoflow",
"babel-preset-atomic": "^5.0.0",
"autosave": "https://codeload.github.com/atom/autosave/legacy.tar.gz/refs/tags/v0.24.6",
"babel-preset-atomic": "^5.0.0",
"background-tips": "https://codeload.github.com/atom/background-tips/legacy.tar.gz/refs/tags/v0.28.0",
"base16-tomorrow-dark-theme": "file:packages/base16-tomorrow-dark-theme",
"base16-tomorrow-light-theme": "file:packages/base16-tomorrow-light-theme",
@ -91,6 +93,7 @@
"language-csharp": "file:packages/language-csharp",
"language-gfm": "file:packages/language-gfm",
"language-git": "file:packages/language-git",
"language-go": "file:packages/language-go",
"language-html": "file:packages/language-html",
"language-hyperlink": "file:packages/language-hyperlink",
"language-java": "file:packages/language-java",
@ -119,7 +122,7 @@
"language-yaml": "file:packages/language-yaml",
"keybinding-resolver": "https://codeload.github.com/atom/keybinding-resolver/legacy.tar.gz/refs/tags/v0.39.1",
"language-c": "file:packages/language-c",
"language-css": "https://codeload.github.com/atom/language-css/legacy.tar.gz/refs/tags/v0.45.1",
"language-css": "file:packages/language-css",
"less-cache": "1.1.0",
"line-ending-selector": "file:packages/line-ending-selector",
"line-top-index": "0.3.1",
@ -240,10 +243,10 @@
"language-clojure": "file:./packages/language-clojure",
"language-coffee-script": "file:./packages/language-coffee-script",
"language-csharp": "file:./packages/language-csharp",
"language-css": "0.45.1",
"language-css": "file:./packages/language-css",
"language-gfm": "file:./packages/language-gfm",
"language-git": "file:./packages/language-git",
"language-go": "0.47.2",
"language-go": "file:./packages/language-go",
"language-html": "file:./packages/language-html",
"language-hyperlink": "file:./packages/language-hyperlink",
"language-java": "file:./packages/language-java",
@ -276,8 +279,9 @@
"preinstall": "node -e 'process.exit(0)'",
"test": "node script/test",
"build": "electron-rebuild",
"build:apm": "cd apm && yarn install && ./node_modules/ppm/bin/npm rebuild && cd ./node_modules/git-utils && npm run prepare && npm install",
"start": "electron --enable-logging . -f"
"build:apm": "cd ppm && yarn install",
"start": "electron --enable-logging . -f",
"dist": "node script/electron-builder.js"
},
"standard-engine": "./script/node_modules/standard",
"standard": {
@ -293,9 +297,13 @@
]
},
"devDependencies": {
"electron": "11.5.0",
"@playwright/test": "1.22.2",
"electron": "12.2.3",
"electron-builder": "23.3.1",
"electron-rebuild": "3.2.7",
"random-seed": "^0.3.0",
"webdriverio": "^7.20.9"
"random-seed": "0.3.0",
"webdriverio": "7.20.9",
"playwright": "1.22.2",
"playwright-core": "1.22.2"
}
}

View File

@ -12,7 +12,7 @@ module.exports = class AboutStatusBar extends EtchComponent {
this.subscriptions.add(
atom.tooltips.add(this.element, {
title:
'An update will be installed the next time Atom is relaunched.<br/><br/>Click the squirrel icon for more information.'
'An update will be installed the next time Pulsar is relaunched.<br/><br/>Click the squirrel icon for more information.'
})
);
}

View File

@ -200,8 +200,8 @@ module.exports = class AboutView extends EtchComponent {
{ className: 'about-credits group-item' },
$.span({ className: 'inline' }, 'And the awesome '),
$.a(
{ href: 'https://github.com/atom/atom/contributors' },
'Atom Community'
{ href: 'https://github.com/pulsar-edit/pulsar/contributors' },
'Pulsar community'
)
)
);

View File

@ -50,7 +50,7 @@ module.exports = class UpdateView extends EtchComponent {
'about-updates-item is-shown about-default-update-message'
},
this.props.updateManager.getAutoUpdatesEnabled()
? 'Atom will check for updates automatically'
? 'Pulsar will check for updates automatically'
: 'Automatic updates are disabled please check manually'
);
break;
@ -96,7 +96,7 @@ module.exports = class UpdateView extends EtchComponent {
$.span({ className: 'icon icon-check' }),
$.span(
{ className: 'about-updates-label is-strong' },
'Atom is up to date!'
'Pulsar is up to date!'
)
);
break;

View File

@ -133,8 +133,8 @@ let UpdateManager = class UpdateManager {
}
const releaseRepo =
appVersion.indexOf('nightly') > -1 ? 'atom-nightly-releases' : 'atom';
return `https://github.com/atom-ide-community/${releaseRepo}/releases/tag/${appVersion}`;
appVersion.indexOf('nightly') > -1 ? 'pulsar-nightly-releases' : 'pulsar';
return `https://github.com/pulsar-edit/${releaseRepo}/releases/tag/${appVersion}`;
}
};

View File

@ -2,7 +2,7 @@
"name": "base16-tomorrow-dark-theme",
"theme": "syntax",
"version": "1.6.0",
"description": "Base16 dark theme for Pulsar",
"description": "Base16 dark theme developed for Atom, repurposed for Pulsar",
"keywords": [
"base16",
"dark",

View File

@ -2,7 +2,7 @@
"name": "base16-tomorrow-light-theme",
"theme": "syntax",
"version": "1.6.0",
"description": "Base16 light theme for Pulsar",
"description": "Base16 light theme developed for Atom, repurposed for Pulsar",
"keywords": [
"base16",
"light",

View File

@ -2,7 +2,7 @@
"name": "dalek",
"main": "./lib/main",
"version": "0.2.2",
"description": "EXTERMINATEs built-in packages installed in ~/.atom/packages",
"description": "EXTERMINATEs built-in packages installed in ~/.pulsar/packages",
"keywords": [],
"repository": "https://github.com/pulsar-edit/pulsar",
"license": "MIT",

View File

@ -20,14 +20,14 @@ describe('dalek', function() {
'an-unduplicated-installed-package': path.join(
'Users',
'username',
'.atom',
'.pulsar',
'packages',
'an-unduplicated-installed-package'
),
'duplicated-package': path.join(
'Users',
'username',
'.atom',
'.pulsar',
'packages',
'duplicated-package'
),
@ -40,7 +40,7 @@ describe('dalek', function() {
atom.devMode = false;
bundledPackages = ['duplicated-package', 'unduplicated-package'];
packageDirPaths = [path.join('Users', 'username', '.atom', 'packages')];
packageDirPaths = [path.join('Users', 'username', '.pulsar', 'packages')];
sandbox = sinon.createSandbox();
sandbox
.stub(dalek, 'realpath')
@ -88,7 +88,7 @@ describe('dalek', function() {
const packagePath = path.join(
'Users',
'username',
'.atom',
'.pulsar',
'packages',
'duplicated-package'
);

View File

@ -114,6 +114,7 @@ export default class DeprecationCopView {
if (packageNames.length === 0) {
return <li className="list-item">No deprecated calls</li>;
} else {
//TODO_PULSAR: Validate 'atom core'
return packageNames.sort().map(packageName => (
<li className="deprecation list-nested-item collapsed">
<div
@ -481,8 +482,8 @@ export default class DeprecationCopView {
const packagePaths = this.getPackagePathsByPackageName();
for (const [packageName, packagePath] of packagePaths) {
if (
packagePath.includes('.atom/dev/packages') ||
packagePath.includes('.atom/packages')
packagePath.includes('.pulsar/dev/packages') ||
packagePath.includes('.pulsar/packages')
) {
packagePaths.set(packageName, fs.absolute(packagePath));
}

View File

@ -2,7 +2,7 @@
"name": "dev-live-reload",
"main": "./lib/main",
"version": "0.48.1",
"description": "Live reload atom themes and packages.",
"description": "Live reload Pulsar themes and packages.",
"repository": "https://github.com/pulsar-edit/pulsar",
"license": "MIT",
"dependencies": {

View File

@ -29,7 +29,7 @@ export default class Reporter {
return {
apiKey: API_KEY,
notifier: {
name: 'Atom',
name: 'Pulsar',
version: LIB_VERSION,
url: 'https://www.atom.io'
},
@ -239,7 +239,7 @@ export default class Reporter {
) {
this.requestPrivateMetadataConsent(
error,
'The Atom team would like to collect the following information to resolve this error:',
'The Pulsar team would like to collect the following information to resolve this error:',
error => this.reportUncaughtException(error)
);
return;
@ -263,7 +263,7 @@ export default class Reporter {
) {
this.requestPrivateMetadataConsent(
error,
'The Atom team would like to collect some information to resolve an unexpected condition:',
'The Pulsar team would like to collect some information to resolve an unexpected condition:',
error => this.reportFailedAssertion(error)
);
return;

View File

@ -2,7 +2,7 @@
"name": "exception-reporting",
"main": "./lib/main",
"version": "0.43.1",
"description": "Reports uncaught Atom exceptions to the Atom team via bugsnag.com",
"description": "Reports uncaught Pulsar exceptions to the Pulsar team via bugsnag.com",
"repository": "https://github.com/pulsar-edit/pulsar",
"license": "MIT",
"engines": {

View File

@ -44,7 +44,7 @@ describe('Reporter', () => {
});
describe('.reportUncaughtException(error)', () => {
it('posts errors originated inside Atom Core to BugSnag', () => {
it('posts errors originated inside Pulsar Core to BugSnag', () => {
const repositoryRootPath = path.join(__dirname, '..');
reporter = new Reporter({
request: (url, options) =>
@ -68,7 +68,7 @@ describe('Reporter', () => {
expect(request.url).toBe('https://notify.bugsnag.com');
expect(request.headers.get('Content-Type')).toBe('application/json');
let body = JSON.parse(request.body);
// Delete `inProject` field because tests may fail when run as part of Atom core
// Delete `inProject` field because tests may fail when run as part of Pulsar Core
// (i.e. when this test file will be located under `node_modules/exception-reporting/spec`)
delete body.events[0].exceptions[0].stacktrace[0].inProject;
@ -112,7 +112,7 @@ describe('Reporter', () => {
});
});
it('posts errors originated outside Atom Core to BugSnag', () => {
it('posts errors originated outside Pulsar Core to BugSnag', () => {
fs.getHomeDirectory = () => path.join(__dirname, '..', '..');
let error = new Error();
@ -129,7 +129,7 @@ describe('Reporter', () => {
expect(request.url).toBe('https://notify.bugsnag.com');
expect(request.headers.get('Content-Type')).toBe('application/json');
let body = JSON.parse(request.body);
// Delete `inProject` field because tests may fail when run as part of Atom core
// Delete `inProject` field because tests may fail when run as part of Pulsar Core
// (i.e. when this test file will be located under `node_modules/exception-reporting/spec`)
delete body.events[0].exceptions[0].stacktrace[0].inProject;
@ -335,7 +335,7 @@ describe('Reporter', () => {
expect(request.url).toBe('https://notify.bugsnag.com');
expect(request.headers.get('Content-Type')).toBe('application/json');
let body = JSON.parse(request.body);
// Delete `inProject` field because tests may fail when run as part of Atom core
// Delete `inProject` field because tests may fail when run as part of Pulsar Core
// (i.e. when this test file will be located under `node_modules/exception-reporting/spec`)
delete body.events[0].exceptions[0].stacktrace[0].inProject;

View File

@ -66,9 +66,9 @@ export default class IncompatiblePackagesComponent {
return (
<div className={'alert icon ' + alertClass}>
{this.rebuiltPackageCount} of {this.incompatiblePackages.length}{' '}
packages were rebuilt successfully. Reload Atom to activate them.
packages were rebuilt successfully. Reload Pulsar to activate them.
<button ref="reloadButton" className="btn pull-right">
Reload Atom
Reload Pulsar
</button>
</div>
);
@ -76,7 +76,7 @@ export default class IncompatiblePackagesComponent {
return (
<div className="alert alert-danger icon icon-bug">
Some installed packages could not be loaded because they contain
native modules that were compiled for an earlier version of Atom.
native modules that were compiled for an earlier version of Pulsar.
<button
ref="rebuildButton"
className="btn pull-right"

View File

@ -1 +1 @@
See the [Atom contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)
See the [Pulsar contributing guide](https://github.com/pulsar-edit/.github/blob/main/CONTRIBUTING.md)

View File

@ -1,7 +1,7 @@
# C/C++ language support in Atom
# C/C++ language support in Pulsar
![CI Status](https://github.com/atom/language-c/actions/workflows/main.yml/badge.svg)
Adds syntax highlighting and snippets to C/C++ files in Atom.
Adds syntax highlighting and snippets to C/C++ files in Pulsar.
Originally [converted](http://flight-manual.atom.io/hacking-atom/sections/converting-from-textmate)
from the [C TextMate bundle](https://github.com/textmate/c.tmbundle).

View File

@ -20,7 +20,7 @@
"node": "*"
},
"dependencies": {
"tree-sitter-c": "0.20.1",
"tree-sitter-c": "0.20.2",
"tree-sitter-cpp": "0.20.0"
},
"devDependencies": {

View File

@ -1,7 +1,7 @@
# Clojure language support in Atom
# Clojure language support in Pulsar
[![macOS Build Status](https://travis-ci.org/atom/language-clojure.svg?branch=master)](https://travis-ci.org/atom/language-clojure) [![Build status](https://ci.appveyor.com/api/projects/status/6kd5fs48y5hixde6/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/language-clojure/branch/master) [![Dependency Status](https://david-dm.org/atom/language-clojure.svg)](https://david-dm.org/atom/language-clojure)
Adds syntax highlighting to Clojure files in Atom.
Adds syntax highlighting to Clojure files in Pulsar.
Originally [converted](http://flight-manual.atom.io/hacking-atom/sections/converting-from-textmate)
from the [Clojure TextMate bundle](https://github.com/mmcgrana/textmate-clojure).

View File

@ -1,8 +1,8 @@
# CoffeeScript language support in Atom
# CoffeeScript language support in Pulsar
[![macOS Build Status](https://travis-ci.org/atom/language-coffee-script.svg?branch=master)](https://travis-ci.org/atom/language-coffee-script)
[![Windows Build status](https://ci.appveyor.com/api/projects/status/4j9aak7iwn2f2x7a/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/language-coffee-script/branch/master) [![Dependency Status](https://david-dm.org/atom/language-coffee-script.svg)](https://david-dm.org/atom/language-coffee-script)
Adds syntax highlighting and snippets to CoffeeScript files in Atom.
Adds syntax highlighting and snippets to CoffeeScript files in Pulsar.
Originally [converted](http://flight-manual.atom.io/hacking-atom/sections/converting-from-textmate) from the [CoffeeScript TextMate bundle](https://github.com/jashkenas/coffee-script-tmbundle).

View File

@ -1,8 +1,8 @@
# C# language support in Atom
# C# language support in Pulsar
[![macOS Build Status](https://travis-ci.org/atom/language-csharp.svg?branch=master)](https://travis-ci.org/atom/language-csharp)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/j1as3753y5t90obn/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/language-csharp/branch/master) [![Dependency Status](https://david-dm.org/atom/language-csharp.svg)](https://david-dm.org/atom/language-csharp)
Adds syntax highlighting and snippets to C# files in Atom.
Adds syntax highlighting and snippets to C# files in Pulsar.
The C# grammar comes from the [.NET Foundation's C# grammar](https://github.com/dotnet/csharp-tmLanguage)

View File

@ -1 +1 @@
See the [Atom contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)
See the [Pulsar contributing guide](https://github.com/pulsar-edit/.github/blob/main/CONTRIBUTING.md)

View File

@ -1,7 +1,7 @@
# CSS language support in Atom
# CSS language support in Pulsar
![CI Status](https://github.com/atom/language-css/actions/workflows/main.yml/badge.svg)
Adds syntax highlighting, completions, and snippets to CSS files in Atom.
Adds syntax highlighting, completions, and snippets to CSS files in Pulsar.
Originally [converted](http://flight-manual.atom.io/hacking-atom/sections/converting-from-textmate)
from the [CSS TextMate bundle](https://github.com/textmate/css.tmbundle).

View File

@ -1 +1 @@
See the [Atom contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)
See the [Pulsar contributing guide](https://github.com/pulsar-edit/.github/blob/main/CONTRIBUTING.md)

View File

@ -1,6 +1,6 @@
# GitHub flavored Markdown package
[![OS X Build Status](https://travis-ci.org/atom/language-gfm.svg?branch=master)](https://travis-ci.org/atom/language-gfm) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/rpub8qjyd8lt7wai/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/language-gfm/branch/master) [![Dependency Status](https://david-dm.org/atom/language-gfm.svg)](https://david-dm.org/atom/language-gfm)
Adds syntax highlighting and snippets to [GitHub flavored Markdown](https://help.github.com/articles/github-flavored-markdown) files in Atom.
Adds syntax highlighting and snippets to [GitHub flavored Markdown](https://help.github.com/articles/github-flavored-markdown) files in Pulsar.
Contributions are greatly appreciated. Please fork this repository and open a pull request to add snippets, make grammar tweaks, etc.

View File

@ -1 +1 @@
See the [Atom contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)
See the [Pulsar contributing guide](https://github.com/pulsar-edit/.github/blob/main/CONTRIBUTING.md)

View File

@ -1,11 +1,11 @@
# Git editing support in Atom
# Git editing support in Pulsar
[![macOS Build Status](https://travis-ci.org/atom/language-git.svg?branch=master)](https://travis-ci.org/atom/language-git)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/481319gyrr1feo8b/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/language-git/branch/master)
[![Dependency Status](https://david-dm.org/atom/language-git.svg)](https://david-dm.org/atom/language-git)
Adds syntax highlighting to Git commit, merge, and rebase messages edited in Atom.
Adds syntax highlighting to Git commit, merge, and rebase messages edited in Pulsar.
You can configure Atom to be your Git editor with the following command:
You can configure Pulsar to be your Git editor with the following command:
```sh
git config --global core.editor "atom --wait"

View File

@ -2,7 +2,7 @@
"name": "one-light-syntax",
"theme": "syntax",
"version": "1.8.4",
"description": "Pulsar One light syntax theme",
"description": "One light syntax theme developed for Atom, repurposed for Pulsar",
"keywords": [
"light",
"syntax"

View File

@ -2,7 +2,7 @@
"name": "one-light-ui",
"theme": "ui",
"version": "1.12.5",
"description": "Pulsar One light UI theme",
"description": "One light UI theme developed for Atom, repurposed for Pulsar",
"keywords": [
"light",
"adaptive",

View File

@ -380,7 +380,7 @@ export default class GuideView {
getApplicationMenuName() {
if (process.platform === 'darwin') {
return 'Atom';
return 'Pulsar';
} else if (process.platform === 'linux') {
return 'Edit';
} else {
@ -450,17 +450,17 @@ export default class GuideView {
didClickStylingButton() {
this.props.reporterProxy.sendEvent('clicked-styling-cta');
atom.workspace.open('atom://.atom/stylesheet', { split: 'left' });
atom.workspace.open('atom://.pulsar/stylesheet', { split: 'left' });
}
didClickInitScriptButton() {
this.props.reporterProxy.sendEvent('clicked-init-script-cta');
atom.workspace.open('atom://.atom/init-script', { split: 'left' });
atom.workspace.open('atom://.pulsar/init-script', { split: 'left' });
}
didClickSnippetsButton() {
this.props.reporterProxy.sendEvent('clicked-snippets-cta');
atom.workspace.open('atom://.atom/snippets', { split: 'left' });
atom.workspace.open('atom://.pulsar/snippets', { split: 'left' });
}
didClickTeletypeButton() {

View File

@ -99,7 +99,7 @@ export default class WelcomeView {
<ul>
<li>
The{' '}
// TODO: Update to our docs or test {atom.branding.urlWeb}+"/docs"
{/* // TODO_PULSAR: Update to our docs or test {atom.branding.urlWeb}+"/docs" */}
<a
href="https://www.atom.io/docs"
dataset={{ event: 'atom-docs' }}

8
playwright.config.ts Normal file
View File

@ -0,0 +1,8 @@
module.exports = {
testDir: 'integration',
timeout: 60000,
expect: {
timeout: 25000,
toMatchSnapshot: {threshold: 0.2},
}
}

1
ppm Submodule

@ -0,0 +1 @@
Subproject commit 46d8338fb258d5265ab2248f3218b01f750d802f

View File

@ -10,13 +10,13 @@ else
fi
case $(basename $0) in
atom-beta)
pulsar-beta)
CHANNEL=beta
;;
atom-nightly)
pulsar-nightly)
CHANNEL=nightly
;;
atom-dev)
pulsar-dev)
CHANNEL=dev
;;
*)
@ -87,7 +87,7 @@ if [ $REDIRECT_STDERR ]; then
exec 2> /dev/null
fi
ATOM_HOME="${ATOM_HOME:-$HOME/.atom}"
ATOM_HOME="${ATOM_HOME:-$HOME/.pulsar}"
mkdir -p "$ATOM_HOME"
if [ $OS == 'Mac' ]; then
@ -110,13 +110,13 @@ if [ $OS == 'Mac' ]; then
else
# Else choose it from the inferred channel name
if [ "$CHANNEL" == 'beta' ]; then
ATOM_EXECUTABLE_NAME="Atom Beta"
ATOM_EXECUTABLE_NAME="Pulsar Beta"
elif [ "$CHANNEL" == 'nightly' ]; then
ATOM_EXECUTABLE_NAME="Atom Nightly"
ATOM_EXECUTABLE_NAME="Pulsar Nightly"
elif [ "$CHANNEL" == 'dev' ]; then
ATOM_EXECUTABLE_NAME="Atom Dev"
ATOM_EXECUTABLE_NAME="Pulsar Dev"
else
ATOM_EXECUTABLE_NAME="Atom"
ATOM_EXECUTABLE_NAME="Pulsar"
fi
fi
@ -127,10 +127,10 @@ if [ $OS == 'Mac' ]; then
elif [ -x "$HOME/Applications/$ATOM_APP_NAME" ]; then
ATOM_PATH="$HOME/Applications"
else
# We haven't found an Atom.app, use spotlight to search for Atom
ATOM_PATH="$(mdfind "kMDItemCFBundleIdentifier == 'com.github.atom'" | grep -v ShipIt | head -1 | xargs -0 dirname)"
# We haven't found an Pulsar.app, use spotlight to search for Pulsar
ATOM_PATH="$(mdfind "kMDItemCFBundleIdentifier == 'com.github.pulsar'" | grep -v ShipIt | head -1 | xargs -0 dirname)"
# Exit if Atom can't be found
# Exit if Pulsar can't be found
if [ ! -x "$ATOM_PATH/$ATOM_APP_NAME" ]; then
echo "Cannot locate ${ATOM_APP_NAME}, it is usually located in /Applications. Set the ATOM_PATH environment variable to the directory containing ${ATOM_APP_NAME}."
exit 1
@ -155,27 +155,27 @@ elif [ $OS == 'Linux' ]; then
case $CHANNEL in
beta)
ATOM_PATH="$USR_DIRECTORY/share/atom-beta/atom"
ATOM_PATH="$USR_DIRECTORY/share/pulsar-beta/pulsar"
;;
nightly)
ATOM_PATH="$USR_DIRECTORY/share/atom-nightly/atom"
ATOM_PATH="$USR_DIRECTORY/share/pulsar-nightly/pulsar"
;;
dev)
ATOM_PATH="$USR_DIRECTORY/share/atom-dev/atom"
ATOM_PATH="$USR_DIRECTORY/share/pulsar-dev/pulsar"
;;
*)
ATOM_PATH="$USR_DIRECTORY/share/atom/atom"
ATOM_PATH="$USR_DIRECTORY/share/pulsar/pulsar"
;;
esac
#Will allow user to get context menu on cinnamon desktop enviroment
if [[ "$(expr substr $(printenv | grep "DESKTOP_SESSION=") 17 8)" == "cinnamon" ]]; then
cp "resources/linux/desktopenviroment/cinnamon/atom.nemo_action" "/usr/share/nemo/actions/atom.nemo_action"
cp "resources/linux/desktopenviroment/cinnamon/pulsar.nemo_action" "/usr/share/nemo/actions/pulsar.nemo_action"
fi
: ${TMPDIR:=/tmp}
[ -x "$ATOM_PATH" ] || ATOM_PATH="$TMPDIR/atom-build/Atom/atom"
[ -x "$ATOM_PATH" ] || ATOM_PATH="$TMPDIR/pulsar-build/Pulsar/pulsar"
if [ $EXPECT_OUTPUT ]; then
"$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@"
@ -196,13 +196,13 @@ elif [ $OS == 'Linux' ]; then
fi
fi
# Exits this process when Atom is used as $EDITOR
# Exits this process when Pulsar is used as $EDITOR
on_die() {
exit 0
}
trap 'on_die' SIGQUIT SIGTERM
# If the wait flag is set, don't exit this process until Atom kills it.
# If the wait flag is set, don't exit this process until Pulsar kills it.
if [ $WAIT ]; then
WAIT_FIFO="$ATOM_HOME/.wait_fifo"

View File

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View File

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View File

@ -9,4 +9,4 @@ Architecture: <%= arch %>
Installed-Size: <%= installedSize %>
Maintainer: GitHub <atom@github.com>
Description: <%= description %>
Atom is a free and open source text editor that is modern, approachable, and hackable to the core.
Pulsar is a free and open source text editor that is modern, approachable, and hackable to the core.

View File

@ -1,9 +1,9 @@
[Nemo Action]
Active=true
Name=Open in Atom
Comment=Open in Atom
Name=Open in Pulsar
Comment=Open in Pulsar
#%U is the current selected file, this will also work on current directory
Exec=atom -n %U
Icon-Name=atom
Exec=pulsar -n %U
Icon-Name=pulsar
Selection=any
Extensions=any

View File

@ -3,7 +3,7 @@
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
<vendor>Atom</vendor>
<vendor>Pulsar</vendor>
<action id="atom.pkexec.dd">
<description gettext-domain="atom">Admin privileges required</description>
<message gettext-domain="atom">Please enter your password to save this file</message>

View File

@ -26,7 +26,7 @@ mkdir -p "%{buildroot}/<%= installDir %>/share/<%= appFileName %>/"
cp -r "<%= appName %>"/* "%{buildroot}/<%= installDir %>/share/<%= appFileName %>/"
mkdir -p "%{buildroot}/<%= installDir %>/bin/"
ln -sf "../share/<%= appFileName %>/resources/app/apm/node_modules/.bin/apm" "%{buildroot}/<%= installDir %>/bin/<%= apmFileName %>"
cp atom.sh "%{buildroot}/<%= installDir %>/bin/<%= appFileName %>"
cp pulsar.sh "%{buildroot}/<%= installDir %>/bin/<%= appFileName %>"
chmod 755 "%{buildroot}/<%= installDir %>/bin/<%= appFileName %>"
mkdir -p "%{buildroot}/<%= installDir %>/share/applications/"
cp "<%= appFileName %>.desktop" "%{buildroot}/<%= installDir %>/share/applications/"

View File

@ -5,15 +5,15 @@
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Atom Helper</string>
<string>Pulsar Helper</string>
<key>CFBundleExecutable</key>
<string>Atom Helper</string>
<string>Pulsar Helper</string>
<key>CFBundleIdentifier</key>
<string>com.github.atom.helper</string>
<string>com.github.pulsar.helper</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Atom Helper</string>
<string>Pulsar Helper</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>

View File

@ -3,15 +3,15 @@
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>Atom</string>
<string>Pulsar</string>
<key>CFBundleIconFile</key>
<string>atom.icns</string>
<string>pulsar.icns</string>
<key>CFBundleIdentifier</key>
<string>com.github.atom</string>
<string>com.github.pulsar</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Atom</string>
<string>Pulsar</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleDevelopmentRegion</key>
@ -43,10 +43,10 @@
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>atom</string>
<string>pulsar</string>
</array>
<key>CFBundleURLName</key>
<string>Atom Shared Session Protocol</string>
<string>Pulsar Shared Session Protocol</string>
</dict>
</array>
<key>CFBundleDocumentTypes</key>

BIN
resources/pulsar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

View File

@ -47,5 +47,5 @@ IF "%EXPECT_OUTPUT%"=="YES" (
"%~dp0\..\..\<%= atomExeName %>" %*
)
) ELSE (
"%~dp0\..\app\apm\bin\node.exe" "%~dp0\atom.js" "<%= atomExeName %>" %*
"%~dp0\..\app\apm\bin\node.exe" "%~dp0\pulsar.js" "<%= atomExeName %>" %*
)

View File

@ -2,8 +2,8 @@
# Get current path in Windows format
if command -v "cygpath" > /dev/null; then
# We have cygpath to do the conversion
ATOMCMD=$(cygpath "$(dirname "$0")/atom.cmd" -a -w)
ARGS=( $(cygpath -a -w "$@" | tr '\n' ' ') )
ATOMCMD=$(cygpath "$(dirname "$0")/pulsar.cmd" -a -w)
ARGS=( $(cygpath -a -w "$@" | tr '\n' ' ') )
else
ARGS=$@
pushd "$(dirname "$0")" > /dev/null
@ -13,10 +13,10 @@ else
# If different root mount point defined in /etc/wsl.conf, use that instead
eval $(grep "^root" /etc/wsl.conf | sed -e "s/ //g")
root="$(echo $root | sed 's|/|\\/|g')"
ATOMCMD="$(echo $PWD | sed 's/\/mnt\/\([a-z]*\)\(.*\)/\1:\2/')/atom.cmd"
ATOMCMD="$(echo $PWD | sed 's/\/mnt\/\([a-z]*\)\(.*\)/\1:\2/')/pulsar.cmd"
else
# We don't have cygpath or WSL so try pwd -W
ATOMCMD="$(pwd -W)/atom.cmd"
ATOMCMD="$(pwd -W)/pulsar.cmd"
fi
popd > /dev/null
fi

View File

@ -29,7 +29,7 @@ const argv = yargs
.help('help')
.describe(
'existing-binaries',
'Use existing Atom binaries (skip clean/transpile/cache)'
'Use existing Pulsar binaries (skip clean/transpile/cache)'
)
.describe('code-sign', 'Code-sign executables (macOS and Windows only)')
.describe('test-sign', 'Test-sign executables (macOS only)')
@ -38,10 +38,10 @@ const argv = yargs
.describe('create-rpm-package', 'Create .rpm package (Linux only)')
.describe(
'compress-artifacts',
'Compress Atom binaries (and symbols on macOS)'
'Compress Pulsar binaries (and symbols on macOS)'
)
.describe('generate-api-docs', 'Only build the API documentation')
.describe('install', 'Install Atom')
.describe('install', 'Install Pulsar')
.string('install')
.describe(
'ci',
@ -227,7 +227,7 @@ async function build() {
compressArtifacts(packagedAppPath);
} else {
console.log(
'Skipping artifacts compression. Specify the --compress-artifacts option to compress Atom binaries (and symbols on macOS)'
'Skipping artifacts compression. Specify the --compress-artifacts option to compress Pulsar binaries (and symbols on macOS)'
.gray
);
}
@ -236,7 +236,7 @@ async function build() {
installApplication(packagedAppPath, argv.install);
} else {
console.log(
'Skipping installation. Specify the --install option to install Atom'
'Skipping installation. Specify the --install option to install Pulsar'
.gray
);
}

View File

@ -7,7 +7,7 @@ const path = require('path');
const spawnSync = require('./lib/spawn-sync');
const repositoryRootPath = path.resolve(__dirname, '..');
const apmRootPath = path.join(repositoryRootPath, 'apm');
const apmRootPath = path.join(repositoryRootPath, 'ppm');
const scriptRootPath = path.join(repositoryRootPath, 'script');
const scriptRunnerRootPath = path.join(scriptRootPath, 'script-runner');
const scriptRunnerModulesPath = path.join(scriptRunnerRootPath, 'node_modules');
@ -18,7 +18,7 @@ const symbolsPath = path.join(buildOutputPath, 'symbols');
const electronDownloadPath = path.join(repositoryRootPath, 'electron');
const homeDirPath = process.env.HOME || process.env.USERPROFILE;
const atomHomeDirPath =
process.env.ATOM_HOME || path.join(homeDirPath, '.atom');
process.env.ATOM_HOME || path.join(homeDirPath, '.pulsar');
const appMetadata = require(path.join(repositoryRootPath, 'package.json'));
const apmMetadata = require(path.join(apmRootPath, 'package.json'));
@ -36,10 +36,10 @@ if (process.env.npm_config_jobs === undefined) {
process.env.npm_config_jobs = 'max';
}
const REPO_OWNER = process.env.REPO_OWNER || 'atom';
const MAIN_REPO = process.env.MAIN_REPO || 'atom';
const REPO_OWNER = process.env.REPO_OWNER || 'pulsar-edit';
const MAIN_REPO = process.env.MAIN_REPO || 'pulsar';
const NIGHTLY_RELEASE_REPO =
process.env.NIGHTLY_RELEASE_REPO || 'atom-nightly-releases';
process.env.NIGHTLY_RELEASE_REPO || 'pulsar-nightly-releases';
module.exports = {
appMetadata,
@ -71,13 +71,13 @@ module.exports = {
};
function getChannelName(channel) {
return channel === 'stable' ? 'atom' : `atom-${channel}`;
return channel === 'stable' ? 'pulsar' : `pulsar-${channel}`;
}
function getChannel(version) {
const match = version.match(/\d+\.\d+\.\d+(-([a-z]+)(\d+|-\w{4,})?)?$/);
if (!match) {
throw new Error(`Found incorrectly formatted Atom version ${version}`);
throw new Error(`Found incorrectly formatted Pulsar version ${version}`);
} else if (match[2]) {
return match[2];
}
@ -87,8 +87,8 @@ function getChannel(version) {
function getAppName(channel) {
return channel === 'stable'
? 'Atom'
: `Atom ${process.env.ATOM_CHANNEL_DISPLAY_NAME ||
? 'Pulsar'
: `Pulsar ${process.env.ATOM_CHANNEL_DISPLAY_NAME ||
channel.charAt(0).toUpperCase() + channel.slice(1)}`;
}
@ -96,9 +96,9 @@ function getExecutableName(channel, appName) {
if (process.platform === 'darwin') {
return appName;
} else if (process.platform === 'win32') {
return channel === 'stable' ? 'atom.exe' : `atom-${channel}.exe`;
return channel === 'stable' ? 'pulsar.exe' : `pulsar-${channel}.exe`;
} else {
return 'atom';
return 'pulsar';
}
}
@ -118,7 +118,7 @@ function getApmBinPath() {
return path.join(
apmRootPath,
'node_modules',
'atom-package-manager',
'pulsar-package-manager',
'bin',
apmBinName
);

135
script/electron-builder.js Normal file
View File

@ -0,0 +1,135 @@
const path = require('path')
const normalizePackageData = require('normalize-package-data');
const fs = require("fs/promises");
const generateMetadata = require('./generate-metadata-for-builder')
// Monkey-patch to not remove things I explicitly didn't say so
// See: https://github.com/electron-userland/electron-builder/issues/6957
let transformer = require('app-builder-lib/out/fileTransformer')
const builder_util_1 = require("builder-util");
transformer.createTransformer = function(srcDir, configuration, extraMetadata, extraTransformer) {
const mainPackageJson = path.join(srcDir, "package.json");
const isRemovePackageScripts = configuration.removePackageScripts !== false;
const isRemovePackageKeywords = configuration.removePackageKeywords !== false;
const packageJson = path.sep + "package.json";
return file => {
if (file === mainPackageJson) {
return modifyMainPackageJson(file, extraMetadata, isRemovePackageScripts, isRemovePackageKeywords);
}
if (extraTransformer != null) {
return extraTransformer(file);
}
else {
return null;
}
};
}
async function modifyMainPackageJson(file, extraMetadata, isRemovePackageScripts, isRemovePackageKeywords) {
const mainPackageData = JSON.parse(await fs.readFile(file, "utf-8"));
if (extraMetadata != null) {
builder_util_1.deepAssign(mainPackageData, extraMetadata);
return JSON.stringify(mainPackageData, null, 2);
}
return null;
}
/// END Monkey-Patch
const builder = require("electron-builder")
const Platform = builder.Platform
const generate = require('./lib/generate-metadata.js')
const pngIcon = 'resources/app-icons/nightly/png/1024.png'
const icoIcon = 'resources/app-icons/nightly/pulsar.ico'
let options = {
"appId": "link.mauricioszabo.pulsar",
"npmRebuild": false,
"publish": null,
files: [
"package.json",
"docs/**/*",
"dot-atom/**/*",
"exports/**/*",
"keymaps/**/*",
"menus/**/*",
"node_modules/**/*",
"resources/**/*",
"script/**/*",
"src/**/*",
"static/**/*",
"vendor/**/*",
"!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}",
"!**/node_modules/*.d.ts",
"!**/node_modules/.bin",
"!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}",
"!.editorconfig",
"!**/._*",
"!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}",
"!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}",
"!**/{appveyor.yml,.travis.yml,circle.yml}",
"!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}"
],
"extraResources": [
{
"from": "ppm",
"to": "app/apm"
}, {
"from": pngIcon,
"to": "pulsar.png"
},
],
compression: "normal",
"linux": {
"icon": pngIcon,
"category": "Development",
"synopsis": "A hackable text editor for the 22nd century",
"target": [
{
"target": "appimage",
"arch": "x64"
},
{
"target": "deb",
"arch": "x64"
},
{
"target": "rpm",
"arch": "x64"
}
]
},
"mac": {
"icon": pngIcon,
"category": "Development"
},
"win": {
"icon": icoIcon,
"target": [
{ "target": "nsis" },
{ "target": "portable" }
]
},
"extraMetadata": {
}
}
async function main() {
const package = await fs.readFile('package.json', "utf-8")
options.extraMetadata = generateMetadata(JSON.parse(package))
builder.build({
//targets: Platform.LINUX.createTarget(),
config: options
}).then((result) => {
console.log("Built binaries")
fs.mkdir('binaries').catch(() => "")
Promise.all(result.map(r => fs.copyFile(r, path.join('binaries', path.basename(r)))))
}).catch((error) => {
console.error("Error building binaries")
console.error(error)
process.exit(1)
})
}
main()

View File

@ -0,0 +1,15 @@
const path = require('path');
const fs = require('fs');
const { createCanvas, loadImage, registerFont } = require('canvas');
const imageCanvas = createCanvas(1024, 1024);
const context = imageCanvas.getContext('2d');
const channel = 'dev';
loadImage(path.resolve(__dirname, '..', 'resources', 'app-icons', channel, 'png', '1024.png')).then((background) => {
context.drawImage(background, 0, 0, imageCanvas.width, imageCanvas.height)
const buffer = imageCanvas.toBuffer('image/png')
fs.writeFileSync(path.resolve(__dirname, '..', 'resources', 'pulsar.png'), buffer);
})

View File

@ -0,0 +1,209 @@
'use strict';
const CSON = require('season');
const fs = require('fs-plus');
const normalizePackageData = require('normalize-package-data');
const path = require('path');
const semver = require('semver');
module.exports = function(packageJSON) {
return {
_atomPackages: buildBundledPackagesMetadata(packageJSON),
_atomMenu: buildPlatformMenuMetadata(packageJSON),
_atomKeymaps: buildPlatformKeymapsMetadata(packageJSON)
}
};
function buildBundledPackagesMetadata(packageJSON) {
const packages = {};
for (let packageName of Object.keys(packageJSON.packageDependencies)) {
const packagePath = path.join('node_modules', packageName);
const packageMetadataPath = path.join(packagePath, 'package.json');
const packageMetadata = JSON.parse(fs.readFileSync(packageMetadataPath, 'utf8'));
normalizePackageData(
packageMetadata,
msg => {
if (!msg.match(/No README data$/)) {
console.warn(
`Invalid package metadata. ${packageMetadata.name}: ${msg}`
);
}
},
true
);
if (
packageMetadata.repository &&
packageMetadata.repository.url &&
packageMetadata.repository.type === 'git'
) {
packageMetadata.repository.url = packageMetadata.repository.url.replace(
/^git\+/,
''
);
}
delete packageMetadata['_from'];
delete packageMetadata['_id'];
delete packageMetadata['dist'];
delete packageMetadata['readme'];
delete packageMetadata['readmeFilename'];
const packageModuleCache = packageMetadata._atomModuleCache || {};
if (
packageModuleCache.extensions &&
packageModuleCache.extensions['.json']
) {
const index = packageModuleCache.extensions['.json'].indexOf(
'package.json'
);
if (index !== -1) {
packageModuleCache.extensions['.json'].splice(index, 1);
}
}
const packageNewMetadata = {
metadata: packageMetadata,
keymaps: {},
menus: {},
grammarPaths: [],
settings: {}
};
packageNewMetadata.rootDirPath = packagePath;
if (packageMetadata.main) {
const mainPath = require.resolve(
path.resolve(packagePath, packageMetadata.main)
);
packageNewMetadata.main = path.relative(
'static',
mainPath
);
// Convert backward slashes to forward slashes in order to allow package
// main modules to be required from the snapshot. This is because we use
// forward slashes to cache the sources in the snapshot, so we need to use
// them here as well.
packageNewMetadata.main = packageNewMetadata.main.replace(/\\/g, '/');
}
const packageKeymapsPath = path.join(packagePath, 'keymaps');
if (fs.existsSync(packageKeymapsPath)) {
for (let packageKeymapName of fs.readdirSync(packageKeymapsPath)) {
const packageKeymapPath = path.join(
packageKeymapsPath,
packageKeymapName
);
if (
packageKeymapPath.endsWith('.cson') ||
packageKeymapPath.endsWith('.json')
) {
packageNewMetadata.keymaps[packageKeymapPath] = CSON.readFileSync(
packageKeymapPath
);
}
}
}
const packageMenusPath = path.join(packagePath, 'menus');
if (fs.existsSync(packageMenusPath)) {
for (let packageMenuName of fs.readdirSync(packageMenusPath)) {
const packageMenuPath = path.join(packageMenusPath, packageMenuName);
if (
packageMenuPath.endsWith('.cson') ||
packageMenuPath.endsWith('.json')
) {
packageNewMetadata.menus[packageMenuPath] = CSON.readFileSync(
packageMenuPath
);
}
}
}
const packageGrammarsPath = path.join(packagePath, 'grammars');
for (let packageGrammarPath of fs.listSync(packageGrammarsPath, [
'json',
'cson'
])) {
packageNewMetadata.grammarPaths.push(packageGrammarPath);
}
const packageSettingsPath = path.join(packagePath, 'settings');
for (let packageSettingPath of fs.listSync(packageSettingsPath, [
'json',
'cson'
])) {
packageNewMetadata.settings[packageSettingPath] = CSON.readFileSync(
packageSettingPath
);
}
const packageStyleSheetsPath = path.join(packagePath, 'styles');
let styleSheets = null;
if (packageMetadata.mainStyleSheet) {
styleSheets = [fs.resolve(packagePath, packageMetadata.mainStyleSheet)];
} else if (packageMetadata.styleSheets) {
styleSheets = packageMetadata.styleSheets.map(name =>
fs.resolve(packageStyleSheetsPath, name, ['css', 'less', ''])
);
} else {
const indexStylesheet = fs.resolve(packagePath, 'index', ['css', 'less']);
if (indexStylesheet) {
styleSheets = [indexStylesheet];
} else {
styleSheets = fs.listSync(packageStyleSheetsPath, ['css', 'less']);
}
}
packageNewMetadata.styleSheetPaths = styleSheets.map(styleSheetPath =>
path.relative(packagePath, styleSheetPath)
);
packages[packageMetadata.name] = packageNewMetadata;
if (packageModuleCache.extensions) {
for (let extension of Object.keys(packageModuleCache.extensions)) {
const paths = packageModuleCache.extensions[extension];
if (paths.length === 0) {
delete packageModuleCache.extensions[extension];
}
}
}
}
return packages;
}
function buildPlatformMenuMetadata(packageJSON) {
const menuPath = path.join(
'menus',
`${process.platform}.cson`
);
if (fs.existsSync(menuPath)) {
return CSON.readFileSync(menuPath);
} else {
return null;
}
}
function buildPlatformKeymapsMetadata(packageJSON) {
const invalidPlatforms = [
'darwin',
'freebsd',
'linux',
'sunos',
'win32'
].filter(p => p !== process.platform);
const keymapsPath = 'keymaps';
const keymaps = {};
for (let keymapName of fs.readdirSync(keymapsPath)) {
const keymapPath = path.join(keymapsPath, keymapName);
if (keymapPath.endsWith('.cson') || keymapPath.endsWith('.json')) {
const keymapPlatform = path.basename(
keymapPath,
path.extname(keymapPath)
);
if (invalidPlatforms.indexOf(keymapPlatform) === -1) {
keymaps[path.basename(keymapPath)] = CSON.readFileSync(keymapPath);
}
}
}
return keymaps;
}

View File

@ -15,10 +15,10 @@ module.exports = function() {
path.join(CONFIG.atomHomeDirPath, '.npm'),
path.join(CONFIG.atomHomeDirPath, 'compile-cache'),
path.join(CONFIG.atomHomeDirPath, 'snapshot-cache'),
path.join(CONFIG.atomHomeDirPath, 'atom-shell'),
path.join(CONFIG.atomHomeDirPath, 'pulsar-shell'),
path.join(CONFIG.atomHomeDirPath, 'electron'),
path.join(os.tmpdir(), 'atom-build'),
path.join(os.tmpdir(), 'atom-cached-atom-shells')
path.join(os.tmpdir(), 'pulsar-build'),
path.join(os.tmpdir(), 'pulsar-cached-pulsar-shells')
];
const rmPromises = [];
for (let path of cachePaths) {

View File

@ -14,7 +14,7 @@ module.exports = function(packagedAppPath) {
if (process.platform === 'darwin') {
const symbolsArchivePath = path.join(
CONFIG.buildOutputPath,
'atom-mac-symbols.zip'
'pulsar-mac-symbols.zip'
);
compress(CONFIG.symbolsPath, symbolsArchivePath);
}
@ -23,11 +23,11 @@ module.exports = function(packagedAppPath) {
function getArchiveName() {
switch (process.platform) {
case 'darwin':
return 'atom-mac.zip';
return 'pulsar-mac.zip';
case 'win32':
return `atom-${process.arch === 'x64' ? 'x64-' : ''}windows.zip`;
return `pulsar-${process.arch === 'x64' ? 'x64-' : ''}windows.zip`;
default:
return `atom-${getLinuxArchiveArch()}.tar.gz`;
return `pulsar-${getLinuxArchiveArch()}.tar.gz`;
}
}

View File

@ -39,7 +39,7 @@ module.exports = function() {
// We do this to ensure that symlinked repo-local bundled packages get
// copied to the output folder correctly. We dereference only the top-level
// symlinks and not nested symlinks to avoid issues where symlinked binaries
// are duplicated in Atom's installation packages (see atom/atom#18490).
// are duplicated in Pulsar's installation packages (see atom/atom#18490).
const nodeModulesPath = path.join(CONFIG.repositoryRootPath, 'node_modules');
glob
.sync(path.join(nodeModulesPath, '*'))
@ -69,7 +69,7 @@ module.exports = function() {
'png',
'1024.png'
),
path.join(CONFIG.intermediateAppPath, 'resources', 'atom.png')
path.join(CONFIG.intermediateAppPath, 'resources', 'pulsar.png')
)
);

View File

@ -10,9 +10,9 @@ const CONFIG = require('../config');
module.exports = function(packagedAppPath) {
console.log(`Creating Debian package for "${packagedAppPath}"`);
const atomExecutableName =
CONFIG.channel === 'stable' ? 'atom' : `atom-${CONFIG.channel}`;
const apmExecutableName =
const editorExecutableName =
CONFIG.channel === 'stable' ? 'pulsar' : `pulsar-${CONFIG.channel}`;
const pkgMgrExecutableName =
CONFIG.channel === 'stable' ? 'apm' : `apm-${CONFIG.channel}`;
const appDescription = CONFIG.appMetadata.description;
const appVersion = CONFIG.appMetadata.version;
@ -29,7 +29,7 @@ module.exports = function(packagedAppPath) {
const outputDebianPackageFilePath = path.join(
CONFIG.buildOutputPath,
`atom-${arch}.deb`
`pulsar-${arch}.deb`
);
const debianPackageDirPath = path.join(
os.tmpdir(),
@ -44,7 +44,7 @@ module.exports = function(packagedAppPath) {
);
const debianPackageAtomDirPath = path.join(
debianPackageShareDirPath,
atomExecutableName
editorExecutableName
);
const debianPackageApplicationsDirPath = path.join(
debianPackageShareDirPath,
@ -57,7 +57,7 @@ module.exports = function(packagedAppPath) {
const debianPackageDocsDirPath = path.join(
debianPackageShareDirPath,
'doc',
atomExecutableName
editorExecutableName
);
if (fs.existsSync(debianPackageDirPath)) {
@ -97,14 +97,14 @@ module.exports = function(packagedAppPath) {
console.log(`Copying binaries into "${debianPackageBinDirPath}"`);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'atom.sh'),
path.join(debianPackageBinDirPath, atomExecutableName)
path.join(CONFIG.repositoryRootPath, 'pulsar.sh'),
path.join(debianPackageBinDirPath, editorExecutableName)
);
fs.symlinkSync(
path.join(
'..',
'share',
atomExecutableName,
editorExecutableName,
'resources',
'app',
'apm',
@ -112,7 +112,7 @@ module.exports = function(packagedAppPath) {
'.bin',
'apm'
),
path.join(debianPackageBinDirPath, apmExecutableName)
path.join(debianPackageBinDirPath, pkgMgrExecutableName)
);
fs.chmodSync(path.join(debianPackageAtomDirPath, 'chrome-sandbox'), '4755');
@ -131,7 +131,7 @@ module.exports = function(packagedAppPath) {
)
);
const controlFileContents = template(controlFileTemplate)({
appFileName: atomExecutableName,
appFileName: editorExecutableName,
version: appVersion,
arch: arch,
installedSize: packageSizeInKilobytes,
@ -150,20 +150,20 @@ module.exports = function(packagedAppPath) {
CONFIG.repositoryRootPath,
'resources',
'linux',
'atom.desktop.in'
'pulsar.desktop.in'
)
);
const desktopEntryContents = template(desktopEntryTemplate)({
appName: CONFIG.appName,
appFileName: atomExecutableName,
appFileName: editorExecutableName,
description: appDescription,
installDir: '/usr',
iconPath: atomExecutableName
iconPath: editorExecutableName
});
fs.writeFileSync(
path.join(
debianPackageApplicationsDirPath,
`${atomExecutableName}.desktop`
`${editorExecutableName}.desktop`
),
desktopEntryContents
);
@ -175,9 +175,9 @@ module.exports = function(packagedAppPath) {
'resources',
'app.asar.unpacked',
'resources',
'atom.png'
'pulsar.png'
),
path.join(debianPackageIconsDirPath, `${atomExecutableName}.png`)
path.join(debianPackageIconsDirPath, `${editorExecutableName}.png`)
);
console.log(`Copying license into "${debianPackageDocsDirPath}"`);
@ -190,12 +190,12 @@ module.exports = function(packagedAppPath) {
`Copying polkit configuration into "${debianPackageShareDirPath}"`
);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'resources', 'linux', 'atom.policy'),
path.join(CONFIG.repositoryRootPath, 'resources', 'linux', 'pulsar.policy'),
path.join(
debianPackageShareDirPath,
'polkit-1',
'actions',
`atom-${CONFIG.channel}.policy`
`pulsar-${CONFIG.channel}.policy`
)
);

View File

@ -10,16 +10,16 @@ const CONFIG = require('../config');
module.exports = function(packagedAppPath) {
console.log(`Creating rpm package for "${packagedAppPath}"`);
const atomExecutableName =
CONFIG.channel === 'stable' ? 'atom' : `atom-${CONFIG.channel}`;
const apmExecutableName =
const editorExecutableName =
CONFIG.channel === 'stable' ? 'pulsar' : `pulsar-${CONFIG.channel}`;
const pkgMgrExecutableName =
CONFIG.channel === 'stable' ? 'apm' : `apm-${CONFIG.channel}`;
const appName = CONFIG.appName;
const appDescription = CONFIG.appMetadata.description;
// RPM versions can't have dashes or tildes in them.
// (Ref.: https://twiki.cern.ch/twiki/bin/view/Main/RPMAndDebVersioning)
const appVersion = CONFIG.appMetadata.version.replace(/-/g, '.');
const policyFileName = `atom-${CONFIG.channel}.policy`;
const policyFileName = `pulsar-${CONFIG.channel}.policy`;
const rpmPackageDirPath = path.join(CONFIG.homeDirPath, 'rpmbuild');
const rpmPackageBuildDirPath = path.join(rpmPackageDirPath, 'BUILD');
@ -65,20 +65,20 @@ module.exports = function(packagedAppPath) {
);
console.log(`Writing rpm package spec file into "${rpmPackageSpecsDirPath}"`);
const rpmPackageSpecFilePath = path.join(rpmPackageSpecsDirPath, 'atom.spec');
const rpmPackageSpecFilePath = path.join(rpmPackageSpecsDirPath, 'pulsar.spec');
const rpmPackageSpecsTemplate = fs.readFileSync(
path.join(
CONFIG.repositoryRootPath,
'resources',
'linux',
'redhat',
'atom.spec.in'
'pulsar.spec.in'
)
);
const rpmPackageSpecsContents = template(rpmPackageSpecsTemplate)({
appName: appName,
appFileName: atomExecutableName,
apmFileName: apmExecutableName,
appFileName: editorExecutableName,
apmFileName: pkgMgrExecutableName,
description: appDescription,
installDir: '/usr',
version: appVersion,
@ -92,30 +92,30 @@ module.exports = function(packagedAppPath) {
CONFIG.repositoryRootPath,
'resources',
'linux',
'atom.desktop.in'
'pulsar.desktop.in'
)
);
const desktopEntryContents = template(desktopEntryTemplate)({
appName: appName,
appFileName: atomExecutableName,
appFileName: editorExecutableName,
description: appDescription,
installDir: '/usr',
iconPath: atomExecutableName
iconPath: editorExecutableName
});
fs.writeFileSync(
path.join(rpmPackageBuildDirPath, `${atomExecutableName}.desktop`),
path.join(rpmPackageBuildDirPath, `${editorExecutableName}.desktop`),
desktopEntryContents
);
console.log(`Copying atom.sh into "${rpmPackageBuildDirPath}"`);
console.log(`Copying pulsar.sh into "${rpmPackageBuildDirPath}"`);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'atom.sh'),
path.join(rpmPackageBuildDirPath, 'atom.sh')
path.join(CONFIG.repositoryRootPath, 'pulsar.sh'),
path.join(rpmPackageBuildDirPath, 'pulsar.sh')
);
console.log(`Copying atom.policy into "${rpmPackageBuildDirPath}"`);
console.log(`Copying pulsar.policy into "${rpmPackageBuildDirPath}"`);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'resources', 'linux', 'atom.policy'),
path.join(CONFIG.repositoryRootPath, 'resources', 'linux', 'pulsar.policy'),
path.join(rpmPackageBuildDirPath, policyFileName)
);
@ -137,7 +137,7 @@ module.exports = function(packagedAppPath) {
);
const outputRpmPackageFilePath = path.join(
CONFIG.buildOutputPath,
`atom.${generatedArch}.rpm`
`pulsar.${generatedArch}.rpm`
);
console.log(
`Copying "${generatedPackageFilePath}" into "${outputRpmPackageFilePath}"`

View File

@ -20,7 +20,7 @@ module.exports = packagedAppPath => {
authors: 'GitHub Inc.',
iconUrl: `https://raw.githubusercontent.com/${REPO_OWNER}/${MAIN_REPO}/master/resources/app-icons/${
CONFIG.channel
}/atom.ico`,
}/pulsar.ico`,
loadingGif: path.join(
CONFIG.repositoryRootPath,
'resources',
@ -32,13 +32,13 @@ module.exports = packagedAppPath => {
remoteReleases: `${updateUrlPrefix}/api/updates${archSuffix}?version=${
CONFIG.computedAppVersion
}`,
setupExe: `AtomSetup${process.arch === 'x64' ? '-x64' : ''}.exe`,
setupExe: `PulsarSetup${process.arch === 'x64' ? '-x64' : ''}.exe`,
setupIcon: path.join(
CONFIG.repositoryRootPath,
'resources',
'app-icons',
CONFIG.channel,
'atom.ico'
'pulsar.ico'
)
};
@ -49,7 +49,7 @@ module.exports = packagedAppPath => {
}
let appName =
CONFIG.channel === 'stable' ? 'atom' : `atom-${CONFIG.channel}`;
CONFIG.channel === 'stable' ? 'pulsar' : `pulsar-${CONFIG.channel}`;
for (let nupkgPath of glob.sync(
`${CONFIG.buildOutputPath}/${appName}-*.nupkg`
)) {
@ -60,7 +60,7 @@ module.exports = packagedAppPath => {
fs.unlinkSync(nupkgPath);
} else {
if (process.arch === 'x64') {
// Use the original .nupkg filename to generate the `atom-x64` name by inserting `-x64` after `atom`
// Use the original .nupkg filename to generate the `pulsar-x64` name by inserting `-x64` after `pulsar`
const newNupkgPath = nupkgPath.replace(
`${appName}-`,
`${appName}-x64-`

View File

@ -34,7 +34,7 @@ module.exports = {
/\.\d+$/,
''
);
const apmVersion = CONFIG.apmMetadata.dependencies['atom-package-manager'];
const apmVersion = CONFIG.apmMetadata.dependencies['pulsar-package-manager'];
const body =
electronVersion +
apmVersion +

View File

@ -9,7 +9,7 @@ module.exports = function(downloadURL, destinationPath) {
const response = syncRequest('GET', downloadURL, {
headers: {
Accept: 'application/vnd.github.v3.raw',
'User-Agent': 'Atom Build',
'User-Agent': 'Pulsar Build',
Authorization: `token ${process.env.GITHUB_TOKEN}`
}
});

View File

@ -10,7 +10,7 @@ const path = require('path');
const CONFIG = require('../config');
module.exports = function() {
const generatedJSONPath = path.join(CONFIG.docsOutputPath, 'atom-api.json');
const generatedJSONPath = path.join(CONFIG.docsOutputPath, 'pulsar-api.json');
console.log(`Generating API docs at ${generatedJSONPath}`);
// Unfortunately, correct relative paths depend on a specific working

View File

@ -13,7 +13,7 @@ let appName = CONFIG.appMetadata.name;
if (process.platform === 'win32') {
// Use the channel name in the app name on Windows so that the installer will
// place it in a different folder in AppData\Local
appName = CONFIG.channel === 'stable' ? 'atom' : `atom-${CONFIG.channel}`;
appName = CONFIG.channel === 'stable' ? 'pulsar' : `pulsar-${CONFIG.channel}`;
}
module.exports = function() {

View File

@ -76,19 +76,19 @@ module.exports = function(packagedAppPath, installDir) {
});
}
} else {
const atomExecutableName =
CONFIG.channel === 'stable' ? 'atom' : 'atom-' + CONFIG.channel;
const apmExecutableName =
const editorExecutableName =
CONFIG.channel === 'stable' ? 'pulsar' : 'pulsar-' + CONFIG.channel;
const pkgMgrExecutableName =
CONFIG.channel === 'stable' ? 'apm' : 'apm-' + CONFIG.channel;
const appName =
CONFIG.channel === 'stable'
? 'Atom'
: startCase('Atom ' + CONFIG.channel);
? 'Pulsar'
: startCase('Pulsar ' + CONFIG.channel);
const appDescription = CONFIG.appMetadata.description;
const prefixDirPath =
installDir !== '' ? handleTilde(installDir) : path.join('/usr', 'local');
const shareDirPath = path.join(prefixDirPath, 'share');
const installationDirPath = path.join(shareDirPath, atomExecutableName);
const installationDirPath = path.join(shareDirPath, editorExecutableName);
const applicationsDirPath = path.join(shareDirPath, 'applications');
const binDirPath = path.join(prefixDirPath, 'bin');
@ -101,7 +101,7 @@ module.exports = function(packagedAppPath, installDir) {
{
// Install icons
const baseIconThemeDirPath = findBaseIconThemeDirPath();
const fullIconName = atomExecutableName + '.png';
const fullIconName = editorExecutableName + '.png';
let existingIconsFound = false;
fs.readdirSync(baseIconThemeDirPath).forEach(size => {
@ -156,7 +156,7 @@ module.exports = function(packagedAppPath, installDir) {
// Install xdg desktop file
const desktopEntryPath = path.join(
applicationsDirPath,
`${atomExecutableName}.desktop`
`${editorExecutableName}.desktop`
);
if (fs.existsSync(desktopEntryPath)) {
console.log(
@ -170,51 +170,51 @@ module.exports = function(packagedAppPath, installDir) {
CONFIG.repositoryRootPath,
'resources',
'linux',
'atom.desktop.in'
'pulsar.desktop.in'
)
);
const desktopEntryContents = template(desktopEntryTemplate)({
appName,
appFileName: atomExecutableName,
appFileName: editorExecutableName,
description: appDescription,
installDir: prefixDirPath,
iconPath: atomExecutableName
iconPath: editorExecutableName
});
fs.writeFileSync(desktopEntryPath, desktopEntryContents);
}
{
// Add atom executable to the PATH
const atomBinDestinationPath = path.join(binDirPath, atomExecutableName);
if (fs.existsSync(atomBinDestinationPath)) {
// Add pulsar executable to the PATH
const editorBinDestinationPath = path.join(binDirPath, editorExecutableName);
if (fs.existsSync(editorBinDestinationPath)) {
console.log(
`Removing existing executable at "${atomBinDestinationPath}"`
`Removing existing executable at "${editorBinDestinationPath}"`
);
fs.removeSync(atomBinDestinationPath);
fs.removeSync(editorBinDestinationPath);
}
console.log(`Copying atom.sh to "${atomBinDestinationPath}"`);
console.log(`Copying pulsar.sh to "${editorBinDestinationPath}"`);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'atom.sh'),
atomBinDestinationPath
path.join(CONFIG.repositoryRootPath, 'pulsar.sh'),
editorBinDestinationPath
);
}
{
// Link apm executable to the PATH
const apmBinDestinationPath = path.join(binDirPath, apmExecutableName);
const pkgMgrBinDestinationPath = path.join(binDirPath, pkgMgrExecutableName);
try {
fs.lstatSync(apmBinDestinationPath);
fs.lstatSync(pkgMgrBinDestinationPath);
console.log(
`Removing existing executable at "${apmBinDestinationPath}"`
`Removing existing executable at "${pkgMgrBinDestinationPath}"`
);
fs.removeSync(apmBinDestinationPath);
fs.removeSync(pkgMgrBinDestinationPath);
} catch (e) {}
console.log(`Symlinking apm to "${apmBinDestinationPath}"`);
console.log(`Symlinking apm to "${pkgMgrBinDestinationPath}"`);
fs.symlinkSync(
path.join(
'..',
'share',
atomExecutableName,
editorExecutableName,
'resources',
'app',
'apm',
@ -222,7 +222,7 @@ module.exports = function(packagedAppPath, installDir) {
'.bin',
'apm'
),
apmBinDestinationPath
pkgMgrBinDestinationPath
);
}

View File

@ -4,7 +4,7 @@ const CONFIG = require('../config.js');
module.exports = function() {
if (process.platform === 'win32') {
// Use START as a way to ignore error if Atom.exe isnt running
// Use START as a way to ignore error if Pulsar.exe isnt running
childProcess.execSync(`START taskkill /F /IM ${CONFIG.executableName}`);
} else {
childProcess.execSync(`pkill -9 ${CONFIG.appMetadata.productName} || true`);

View File

@ -1,7 +1,7 @@
const notarize = require('electron-notarize').notarize;
module.exports = async function(packagedAppPath) {
const appBundleId = 'com.github.atom';
const appBundleId = 'com.github.pulsar';
const appleId = process.env.AC_USER;
const appleIdPassword = process.env.AC_PASSWORD;
console.log(`Notarizing application at ${packagedAppPath}`);

View File

@ -22,7 +22,8 @@ module.exports = function() {
} with app name "${appName}"`
);
return runPackager({
appBundleId: 'com.github.atom',
appBundleId: 'com.github.pulsar',
//TODO_PULSAR: Check to see if we should/need to migrate away from GitHub as a CompanyName
appCopyright: `Copyright © 2014-${new Date().getFullYear()} GitHub, Inc. All rights reserved.`,
appVersion: CONFIG.appMetadata.version,
arch: process.platform === 'darwin' ? 'x64' : HOST_ARCH, // OS X is 64-bit only
@ -36,25 +37,26 @@ module.exports = function() {
CONFIG.repositoryRootPath,
'resources',
'mac',
'atom-Info.plist'
'pulsar-Info.plist'
),
helperBundleId: 'com.github.atom.helper',
helperBundleId: 'com.github.pulsar.helper',
icon: path.join(
CONFIG.repositoryRootPath,
'resources',
'app-icons',
CONFIG.channel,
'atom'
'pulsar'
),
name: appName,
out: CONFIG.buildOutputPath,
overwrite: true,
platform: process.platform,
// Atom doesn't have devDependencies, but if prune is true, it will delete the non-standard packageDependencies.
// Pulsar doesn't have devDependencies, but if prune is true, it will delete the non-standard packageDependencies.
prune: false,
win32metadata: {
//TODO_PULSAR: Check to see if we should/need to migrate away from GitHub as a CompanyName
CompanyName: 'GitHub, Inc.',
FileDescription: 'Atom',
FileDescription: 'Pulsar',
ProductName: CONFIG.appName
}
}).then(packagedAppPath => {
@ -109,8 +111,8 @@ function copyNonASARResources(packagedAppPath, bundledResourcesPath) {
)
);
fs.copySync(
path.join(CONFIG.repositoryRootPath, 'atom.sh'),
path.join(bundledResourcesPath, 'app', 'atom.sh')
path.join(CONFIG.repositoryRootPath, 'pulsar.sh'),
path.join(bundledResourcesPath, 'app', 'pulsar.sh')
);
}
if (process.platform === 'darwin') {
@ -128,12 +130,12 @@ function copyNonASARResources(packagedAppPath, bundledResourcesPath) {
'png',
'1024.png'
),
path.join(packagedAppPath, 'atom.png')
path.join(packagedAppPath, 'pulsar.png')
);
} else if (process.platform === 'win32') {
[
'atom.sh',
'atom.js',
'pulsar.sh',
'pulsar.js',
'apm.cmd',
'apm.sh',
'file.ico',
@ -145,7 +147,7 @@ function copyNonASARResources(packagedAppPath, bundledResourcesPath) {
)
);
// Customize atom.cmd for the channel-specific atom.exe name (e.g. atom-beta.exe)
// Customize pulsar.cmd for the channel-specific pulsar.exe name (e.g. pulsar-beta.exe)
generateAtomCmdForChannel(bundledResourcesPath);
}
@ -162,11 +164,11 @@ function setAtomHelperVersion(packagedAppPath) {
const frameworksPath = path.join(packagedAppPath, 'Contents', 'Frameworks');
const helperPListPath = path.join(
frameworksPath,
'Atom Helper.app',
'Pulsar Helper.app',
'Contents',
'Info.plist'
);
console.log(`Setting Atom Helper Version for ${helperPListPath}`);
console.log(`Setting Pulsar Helper Version for ${helperPListPath}`);
spawnSync('/usr/libexec/PlistBuddy', [
'-c',
`Add CFBundleVersion string ${CONFIG.appMetadata.version}`,
@ -197,7 +199,7 @@ function buildAsarUnpackGlobExpression() {
path.join('**', 'node_modules', 'dugite', 'git', '**'),
path.join('**', 'node_modules', 'github', 'bin', '**'),
path.join('**', 'node_modules', 'vscode-ripgrep', 'bin', '**'),
path.join('**', 'resources', 'atom.png')
path.join('**', 'resources', 'pulsar.png')
];
return `{${unpack.join(',')}}`;
@ -207,9 +209,9 @@ function getAppName() {
if (process.platform === 'darwin') {
return CONFIG.appName;
} else if (process.platform === 'win32') {
return CONFIG.channel === 'stable' ? 'atom' : `atom-${CONFIG.channel}`;
return CONFIG.channel === 'stable' ? 'pulsar' : `pulsar-${CONFIG.channel}`;
} else {
return 'atom';
return 'pulsar';
}
}
@ -236,7 +238,7 @@ function renamePackagedAppDir(packageOutputDirPath) {
);
} else if (process.platform === 'linux') {
const appName =
CONFIG.channel !== 'stable' ? `atom-${CONFIG.channel}` : 'atom';
CONFIG.channel !== 'stable' ? `pulsar-${CONFIG.channel}` : 'pulsar';
let architecture;
if (HOST_ARCH === 'ia32') {
architecture = 'i386';
@ -264,13 +266,13 @@ function renamePackagedAppDir(packageOutputDirPath) {
function generateAtomCmdForChannel(bundledResourcesPath) {
const atomCmdTemplate = fs.readFileSync(
path.join(CONFIG.repositoryRootPath, 'resources', 'win', 'atom.cmd')
path.join(CONFIG.repositoryRootPath, 'resources', 'win', 'pulsar.cmd')
);
const atomCmdContents = template(atomCmdTemplate)({
atomExeName: CONFIG.executableName
});
fs.writeFileSync(
path.join(bundledResourcesPath, 'cli', 'atom.cmd'),
path.join(bundledResourcesPath, 'cli', 'pulsar.cmd'),
atomCmdContents
);
}

View File

@ -6,7 +6,7 @@ const CONFIG = require('../config');
module.exports = function(packagePath, ci, stdioOptions) {
const installEnv = Object.assign({}, process.env);
// Set resource path so that apm can load metadata related to Atom.
// Set resource path so that apm can load metadata related to Pulsar.
installEnv.ATOM_RESOURCE_PATH = CONFIG.repositoryRootPath;
childProcess.execFileSync(CONFIG.getApmBinPath(), [ci ? 'ci' : 'install'], {

View File

@ -64,7 +64,7 @@ function transpilePackagesWithCustomTranspilerPaths() {
pathsToCompile.forEach(transpilePath);
}
// Now that we've transpiled everything in-place, we no longer want Atom to try to transpile
// Now that we've transpiled everything in-place, we no longer want Pulsar to try to transpile
// the same files when they're being required.
delete metadata.atomTranspilers;
fs.writeFileSync(

Some files were not shown because too many files have changed in this diff Show More