Skip to content

Commit

Permalink
Merge pull request #314 from pulsar-edit/more-bundles
Browse files Browse the repository at this point in the history
Additional Bundling of Core Packages
  • Loading branch information
confused-Techie authored Jan 7, 2023
2 parents f674f3e + 54e77ae commit fa094e5
Show file tree
Hide file tree
Showing 219 changed files with 12,608 additions and 25 deletions.
26 changes: 13 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"autocomplete-css": "file:packages/autocomplete-css",
"autocomplete-html": "file:packages/autocomplete-html",
"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",
"autocomplete-snippets": "file:packages/autocomplete-snippets",
"autoflow": "file:packages/autoflow",
"autosave": "https://codeload.github.com/atom/autosave/legacy.tar.gz/refs/tags/v0.24.6",
"babel-preset-atomic": "^5.0.0",
Expand All @@ -50,13 +50,13 @@
"clear-cut": "^2.0.2",
"coffee-script": "1.12.7",
"color": "3.1.3",
"command-palette": "https://codeload.github.com/atom/command-palette/legacy.tar.gz/refs/tags/v0.43.5",
"command-palette": "file:packages/command-palette",
"dalek": "file:packages/dalek",
"dedent": "^0.7.0",
"deprecation-cop": "file:packages/deprecation-cop",
"dev-live-reload": "file:packages/dev-live-reload",
"document-register-element": "^1.14.10",
"encoding-selector": "https://codeload.github.com/atom/encoding-selector/legacy.tar.gz/refs/tags/v0.23.9",
"encoding-selector": "file:packages/encoding-selector",
"etch": "0.14.1",
"event-kit": "^2.5.3",
"exception-reporting": "file:packages/exception-reporting",
Expand Down Expand Up @@ -134,7 +134,7 @@
"one-dark-ui": "file:packages/one-dark-ui",
"one-light-syntax": "file:packages/one-light-syntax",
"one-light-ui": "file:packages/one-light-ui",
"open-on-github": "https://codeload.github.com/atom/open-on-github/legacy.tar.gz/refs/tags/v1.3.2",
"open-on-github": "file:packages/open-on-github",
"package-generator": "file:packages/package-generator",
"pathwatcher": "^8.1.2",
"postcss": "8.2.10",
Expand All @@ -153,11 +153,11 @@
"solarized-dark-syntax": "file:packages/solarized-dark-syntax",
"solarized-light-syntax": "file:packages/solarized-light-syntax",
"spell-check": "https://codeload.github.com/atom/spell-check/legacy.tar.gz/refs/tags/v0.77.1",
"status-bar": "https://codeload.github.com/atom/status-bar/legacy.tar.gz/refs/tags/v1.8.17",
"status-bar": "file:packages/status-bar",
"styleguide": "https://codeload.github.com/atom/styleguide/legacy.tar.gz/refs/tags/v0.49.12",
"superstring": "^2.4.4",
"symbols-view": "https://codeload.github.com/atom/symbols-view/legacy.tar.gz/refs/tags/v0.118.4",
"tabs": "https://codeload.github.com/atom/tabs/legacy.tar.gz/refs/tags/v0.110.2",
"tabs": "file:packages/tabs",
"temp": "0.9.2",
"text-buffer": "^13.18.6",
"timecop": "https://codeload.github.com/atom/timecop/legacy.tar.gz/refs/tags/v0.36.2",
Expand Down Expand Up @@ -192,17 +192,17 @@
"autocomplete-css": "file:./packages/autocomplete-css",
"autocomplete-html": "file:./packages/autocomplete-html",
"autocomplete-plus": "2.42.4",
"autocomplete-snippets": "1.12.1",
"autocomplete-snippets": "file:./packages/autocomplete-snippets",
"autoflow": "file:./packages/autoflow",
"autosave": "0.24.6",
"background-tips": "file:./packages/background-tips",
"bookmarks": "file:./packages/bookmarks",
"bracket-matcher": "0.92.0",
"command-palette": "0.43.5",
"command-palette": "file:./packages/command-palette",
"dalek": "file:./packages/dalek",
"deprecation-cop": "file:./packages/deprecation-cop",
"dev-live-reload": "file:./packages/dev-live-reload",
"encoding-selector": "0.23.9",
"encoding-selector": "file:./packages/encoding-selector",
"exception-reporting": "file:./packages/exception-reporting",
"find-and-replace": "0.220.1",
"fuzzy-finder": "1.14.3",
Expand All @@ -217,15 +217,15 @@
"link": "file:./packages/link",
"markdown-preview": "0.160.2",
"notifications": "0.72.1",
"open-on-github": "1.3.2",
"package-generator": "1.3.0",
"open-on-github": "file:./packages/open-on-github",
"package-generator": "file:./packages/package-generator",
"settings-view": "file:./packages/settings-view",
"snippets": "1.6.1",
"spell-check": "0.77.1",
"status-bar": "1.8.17",
"status-bar": "file:./packages/status-bar",
"styleguide": "0.49.12",
"symbols-view": "0.118.4",
"tabs": "0.110.2",
"tabs": "file:./packages/tabs",
"timecop": "0.36.2",
"tree-view": "0.229.1",
"update-package-dependencies": "file:./packages/update-package-dependencies",
Expand Down
7 changes: 7 additions & 0 deletions packages/autocomplete-snippets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# autocomplete+ snippet suggestions package

Adds snippets to autocomplete+ suggestions

## Features

* Adds user snippets and language snippets to the autocomplete+ suggestions list
26 changes: 26 additions & 0 deletions packages/autocomplete-snippets/lib/autocomplete-snippets.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module.exports = {
provider: null,

activate() {},

deactivate() {
this.provider = null
},

provide() {
if (this.provider == null) {
const SnippetsProvider = require('./snippets-provider')
this.provider = new SnippetsProvider()
if (this.snippets != null) {
this.provider.setSnippetsSource(this.snippets)
}
}

return this.provider
},

consumeSnippets(snippets) {
this.snippets = snippets
return (this.provider != null ? this.provider.setSnippetsSource(this.snippets) : undefined)
}
}
61 changes: 61 additions & 0 deletions packages/autocomplete-snippets/lib/snippets-provider.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
module.exports =
class SnippetsProvider {
constructor() {
this.selector = '*'
this.inclusionPriority = 1
this.suggestionPriority = 2
this.filterSuggestions = true

this.showIcon = true
this.snippetsSource = {
snippetsForScopes(scopeDescriptor) {
return atom.config.get('snippets', {scope: scopeDescriptor})
}
}
}

setSnippetsSource(snippetsSource) {
if (typeof (snippetsSource != null ? snippetsSource.snippetsForScopes : undefined) === "function") {
return this.snippetsSource = snippetsSource
}
}

getSuggestions({scopeDescriptor, prefix}) {
if (!(prefix != null ? prefix.length : undefined)) { return }
const scopeSnippets = this.snippetsSource.snippetsForScopes(scopeDescriptor)
return this.findSuggestionsForPrefix(scopeSnippets, prefix)
}

findSuggestionsForPrefix(snippets, prefix) {
if (snippets == null) { return [] }

const suggestions = []
for (let snippetPrefix in snippets) {
const snippet = snippets[snippetPrefix]
if (!snippet || !snippetPrefix || !prefix || !firstCharsEqual(snippetPrefix, prefix)) { continue }
suggestions.push({
iconHTML: this.showIcon ? undefined : false,
type: 'snippet',
text: snippet.prefix,
replacementPrefix: prefix,
rightLabel: snippet.name,
rightLabelHTML: snippet.rightLabelHTML,
leftLabel: snippet.leftLabel,
leftLabelHTML: snippet.leftLabelHTML,
description: snippet.description,
descriptionMoreURL: snippet.descriptionMoreURL
})
}

suggestions.sort(ascendingPrefixComparator)
return suggestions
}

onDidInsertSuggestion({editor}) {
return atom.commands.dispatch(atom.views.getView(editor), 'snippets:expand')
}
}

const ascendingPrefixComparator = (a, b) => a.text.localeCompare(b.text)

const firstCharsEqual = (str1, str2) => str1[0].toLowerCase() === str2[0].toLowerCase()
16 changes: 16 additions & 0 deletions packages/autocomplete-snippets/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions packages/autocomplete-snippets/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "autocomplete-snippets",
"main": "./lib/autocomplete-snippets",
"version": "1.12.1",
"description": "Adds snippets to autocomplete+ suggestions",
"repository": "https://github.com/pulsa-edit/pulsar",
"license": "MIT",
"engines": {
"atom": ">=0.174.0 <2.0.0"
},
"providedServices": {
"autocomplete.provider": {
"versions": {
"2.0.0": "provide"
}
}
},
"consumedServices": {
"snippets": {
"versions": {
"0.1.0": "consumeSnippets"
}
}
}
}
106 changes: 106 additions & 0 deletions packages/autocomplete-snippets/spec/autocomplete-snippets-spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
describe('AutocompleteSnippets', () => {
let [completionDelay, editor, editorView] = []

beforeEach(() => {
atom.config.set('autocomplete-plus.enableAutoActivation', true)
completionDelay = 100
atom.config.set('autocomplete-plus.autoActivationDelay', completionDelay)
completionDelay += 100 // Rendering delay

const workspaceElement = atom.views.getView(atom.workspace)
jasmine.attachToDOM(workspaceElement)

let autocompleteSnippetsMainModule = null
let snippetsMainModule = null
const autocompleteManager = null

waitsForPromise(() =>
Promise.all([
atom.workspace.open('sample.js').then((e) => {
editor = e
editorView = atom.views.getView(editor)
}),

atom.packages.activatePackage('language-javascript'),
atom.packages.activatePackage('autocomplete-snippets').then(({mainModule}) => autocompleteSnippetsMainModule = mainModule),

atom.packages.activatePackage('autocomplete-plus'),
atom.packages.activatePackage('snippets').then(({mainModule}) => {
snippetsMainModule = mainModule
snippetsMainModule.loaded = false
})
])
)

waitsFor('snippets provider to be registered', 1000, () => autocompleteSnippetsMainModule.provider != null)

waitsFor('all snippets to load', 3000, () => snippetsMainModule.loaded)
})

describe('when autocomplete-plus is enabled', () => {
it('shows autocompletions when there are snippets available', () => {
runs(() => {
expect(editorView.querySelector('.autocomplete-plus')).not.toExist()

editor.moveToBottom()
editor.insertText('D')
editor.insertText('o')

advanceClock(completionDelay)
})

waitsFor('autocomplete view to appear', 1000, () => editorView.querySelector('.autocomplete-plus span.word'))

runs(() => {
expect(editorView.querySelector('.autocomplete-plus span.word')).toHaveText('do')
expect(editorView.querySelector('.autocomplete-plus span.right-label')).toHaveText('do')
})
})

it("expands the snippet on confirm", () => {
runs(() => {
expect(editorView.querySelector('.autocomplete-plus')).not.toExist()

editor.moveToBottom()
editor.insertText('D')
editor.insertText('o')

advanceClock(completionDelay)
})

waitsFor('autocomplete view to appear', 1000, () => editorView.querySelector('.autocomplete-plus span.word'))

runs(() => {
atom.commands.dispatch(editorView, 'autocomplete-plus:confirm')
expect(editor.getText()).toContain('} while (true)')
})
})
})

describe('when showing suggestions', () =>
it('sorts them in alphabetical order', () => {
const unorderedPrefixes = [
"",
"dop",
"do",
"dad",
"d"
]

const snippets = {}
for (let x of Array.from(unorderedPrefixes)) {
snippets[x] = {prefix: x, name: "", description: "", descriptionMoreURL: ""}
}

const SnippetsProvider = require('../lib/snippets-provider')
const sp = new SnippetsProvider()
sp.setSnippetsSource({snippetsForScopes(scope) {
return snippets
}})
const suggestions = sp.getSuggestions({scopeDescriptor: "", prefix: "d"})

const suggestionsText = suggestions.map(x => x.text)
expect(suggestionsText).toEqual(["d", "dad", "do", "dop"])
})
)
})
1 change: 1 addition & 0 deletions packages/autocomplete-snippets/spec/fixtures/sample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
console.log("ohai");
5 changes: 5 additions & 0 deletions packages/command-palette/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Command Palette package

Find and run available commands using <kbd>cmd-shift-p</kbd> (macOS) or <kbd>ctrl-shift-p</kbd> (Linux/Windows) in Pulsar.

![](https://f.cloud.github.com/assets/671378/2241354/2908b768-9ccd-11e3-9da1-a11753c0495d.png)
8 changes: 8 additions & 0 deletions packages/command-palette/keymaps/command-palette.cson
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'.platform-darwin, .platform-darwin .command-palette atom-text-editor':
'cmd-shift-p': 'command-palette:toggle'

'.platform-win32, .platform-win32 .command-palette atom-text-editor':
'ctrl-shift-p': 'command-palette:toggle'

'.platform-linux, .platform-linux .command-palette atom-text-editor':
'ctrl-shift-p': 'command-palette:toggle'
34 changes: 34 additions & 0 deletions packages/command-palette/lib/command-palette-package.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/** @babel */

import {CompositeDisposable} from 'atom'
import CommandPaletteView from './command-palette-view'

class CommandPalettePackage {
activate () {
this.commandPaletteView = new CommandPaletteView()
this.disposables = new CompositeDisposable()
this.disposables.add(atom.commands.add('atom-workspace', {
'command-palette:toggle': () => {
this.commandPaletteView.toggle()
},
'command-palette:show-hidden-commands': () => {
this.commandPaletteView.show(true)
}
}))
this.disposables.add(atom.config.observe('command-palette.useAlternateScoring', (newValue) => {
this.commandPaletteView.update({useAlternateScoring: newValue})
}))
this.disposables.add(atom.config.observe('command-palette.preserveLastSearch', (newValue) => {
this.commandPaletteView.update({preserveLastSearch: newValue})
}))
return this.commandPaletteView.show()
}

async deactivate () {
this.disposables.dispose()
await this.commandPaletteView.destroy()
}
}

const pack = new CommandPalettePackage()
export default pack
Loading

0 comments on commit fa094e5

Please sign in to comment.