pulsar-edit / pulsar Goto Github PK
View Code? Open in Web Editor NEWA Community-led Hyper-Hackable Text Editor
Home Page: https://pulsar-edit.dev
License: Other
A Community-led Hyper-Hackable Text Editor
Home Page: https://pulsar-edit.dev
License: Other
Currently there is Telemetry collected about the users and their usage of this application. As discussed in Discussion #2 this is behavior we should likely disable completely.
We don't have the eyes nor time to even review this data if we wanted, additionally as expressed in the Discussions as a community driven volunteer project there is no reason for us to collect usage data, we aren't selling a product, and I don't think it will impact the features we work on, since again as volunteers we will likely work on the aspects we care about the most.
I'm hoping to make this issue to get a sense if theres any obvious points I am missing here, before starting the work myself to remove the telemetry from the repo.
Reproducible on safe mode and on core or installed packages.
If we start the editor (with yarn start or a binary generated from electron-build) and disable some package, then restart the editor (with the command window:reload
) the package is re-activated.
Debugging this issue, I found that there's a property that's defined on src/main-process/atom-window.js
called loadSettingsJSON
. This sets, between other things, the packages that were disabled when the editor was started.
This gets reset by src/config.js
on resetUserSettings
. I'm not really sure why this happens, and how can we avoid resetting everything or fixing this bug by either not changing this setting or updating this setting to what we defined on the config.
In fact, all "core" settings are reset, like for example font size and friends.
$ /usr/bin/pulsar: line 166: 217750 Trace/breakpoint trap (core dumped) nohup "$PULSAR_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
[217750:1209/153159.171522:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
It is Electron issue, when Electron-libs don't match your system
--in-process-gpu
option helps as workaround.
Also --disable-gpu-sandbox
or --no-sandbox
helps too.
# works:
$ firejail --env=DESKTOPINTEGRATION=appimaged --noprofile --appimage /home/user/Downloads/Pulsar-1.63.2022120904.AppImage --in-process-gpu
$ firejail --env=DESKTOPINTEGRATION=appimaged --noprofile --appimage /home/user/Downloads/Pulsar-1.63.2022120904.AppImage --disable-gpu-sandbox
$ firejail --env=DESKTOPINTEGRATION=appimaged --noprofile --appimage /home/user/Downloads/Pulsar-1.63.2022120904.AppImage --no-sandbox
# or for .deb installed:
$ pulsar --in-process-gpu
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Ubuntu 22.04
64-bit(x86_64)
same as
agalwood/Motrix#1158
picturama/picturama#116
and many other Electron-based apps.
When Pulsar is installed and run, no icon appears in the window list in the panel, nor in the menu.
I tried making a custom launcher and specified the pulsar.png icon. While this gave it an icon on the desktop (and when that was added to the menu there was an icon) it still doesn't appear in the Window list.
As I said, very minor but is probably some "polish" needed before the official release.
Thanks for all your hard work, I'm glad to be running Pulsar so I really appreciate it.
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Linux Mint 1 (Cinnamon 5.4.12)
64-bit(x86_64)
No response
This test sometimes passes, sometimes fails:
when the file is updated with valid CSON
it notifies onDidChange observers with the data
timeout: timed out after 120000 msec waiting for spec promise to resolve
It should be a good idea to investigate what's wrong and know if it's a valid concern or just a flaky test
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Any
64-bit(x86_64)
Check CI
No response
This happened after I upgraded my OS from Linux Mint 20.3 to 21 (Ubuntu 20.04 -> 22.04). However it also happened after a smaller system update on Fedora 36.
The dev tools no longer work unless Pulsar is launched with --no-sandbox
. The application itself launches normally but any attempts to open the tools fail (Window: Toggle Dev Tools
, ctrl+shift+i, view > developer > toggle developer tools). No errors created, no logging to the terminal.
Launching with --no-sandbox
causes them to work again (resolution from @DeeDeeG).
Ideally Pulsar should be able to open the dev tools regardless of whether --in-process-gpu
or --no-sandbox
is used. It should certainly throw an error if it is unable to open the dev tools for whatever reason.
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Linux Mint 21 (but also on Fedora 36)
64-bit(x86_64)
Built from 3646a71
The tests in this file rely on using the updateManager
from ./lib/update-manager.js
to check for any updates for the editor, which contacts Atom.io's servers. Which as we all know are very unstable at this time.
These tests likely introduce some variability into our pass rate, depending on if Atoms Servers are able to successfully respond to our query.
The tests themselves will likely have to be altered as they expect the Release Notes to contain atom.io/releases
additionally, the code within ./lib/update-manager.js
will likely have to be altered to stop checking Atom.io for application updates. This could mean they always say there are no updates at this time, or it could mean that we instead have it check our GitHub Releases or tags.
tried to install hydrogen package through the pulsar GUI and it fails to install. I had no problems with installing other packages.
I know there is already a lot to do and supporting specific packages is too much but Hydrogen is a key package which is the sole reason for a lot of people refusing to abandon pulsar/atom. if it can run out of the box, many more people will stick with pulsar
i get the following error message:
Installing “[email protected]” failed.Hide output…
@aminya/[email protected] install /tmp/apm-install-dir-20221029-20896-vsezu6.i3yds/node_modules/Hydrogen/node_modules/@aminya/zeromq
node-gyp-build || npm run build:libzmq
@aminya/[email protected] build:libzmq /tmp/apm-install-dir-20221029-20896-vsezu6.i3yds/node_modules/Hydrogen/node_modules/@aminya/zeromq
node-gyp rebuild
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: json-parser
is deprecated. Please use comment-json
instead
npm WARN deprecated [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
(node:21328) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use node --trace-deprecation ...
to show where the warning was created)
Traceback (most recent call last):
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 50, in
sys.exit(gyp.script_main())
^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 554, in script_main
return main(sys.argv[1:])
^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 547, in main
return gyp_main(args)
^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 520, in gyp_main
[generator, flat_list, targets, data] = Load(
^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 136, in Load
result = gyp.input.Load(build_files, default_variables, includes[:],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 2782, in Load
LoadTargetBuildFile(build_file, data, aux_data,
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 391, in LoadTargetBuildFile
build_file_data = LoadOneBuildFile(build_file_path, data, aux_data,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 234, in LoadOneBuildFile
build_file_contents = open(build_file_path, 'rU').read()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU' while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp
failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (node:events:365:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Linux 6.0.9-300.fc37.x86_64
gyp ERR! command "/opt/Pulsar/resources/app/ppm/bin/node" "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/apm-install-dir-20221029-20896-vsezu6.i3yds/node_modules/Hydrogen/node_modules/@aminya/zeromq
gyp ERR! node -v v16.0.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
(node:21382) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use node --trace-deprecation ...
to show where the warning was created)
Traceback (most recent call last):
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 50, in
sys.exit(gyp.script_main())
^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 554, in script_main
return main(sys.argv[1:])
^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 547, in main
return gyp_main(args)
^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 520, in gyp_main
[generator, flat_list, targets, data] = Load(
^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 136, in Load
result = gyp.input.Load(build_files, default_variables, includes[:],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 2782, in Load
LoadTargetBuildFile(build_file, data, aux_data,
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 391, in LoadTargetBuildFile
build_file_data = LoadOneBuildFile(build_file_path, data, aux_data,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 234, in LoadOneBuildFile
build_file_contents = open(build_file_path, 'rU').read()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU' while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp
failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (node:events:365:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Linux 6.0.9-300.fc37.x86_64
gyp ERR! command "/opt/Pulsar/resources/app/ppm/bin/node" "/opt/Pulsar/resources/app/ppm/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/apm-install-dir-20221029-20896-vsezu6.i3yds/node_modules/Hydrogen/node_modules/@aminya/zeromq
gyp ERR! node -v v16.0.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @aminya/[email protected] build:libzmq: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @aminya/[email protected] build:libzmq script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
npm ERR! A complete log of this run can be found in:
npm ERR! /home/doug/.pulsar/.apm/_logs/2022-11-29T09_33_21_988Z-debug.log
npm WARN enoent ENOENT: no such file or directory, open '/tmp/apm-install-dir-20221029-20896-vsezu6.i3yds/package.json'
npm WARN @nteract/[email protected] requires a peer of react@^16.11.0 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react-dom@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.8.0 || 16.9.0-alpha.0 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.x.x but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16.x.x but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.0.0 || ^16.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.8.0 but none is installed. You must install peer dependencies yourself.
npm WARN apm-install-dir-20221029-20896-vsezu6.i3yds No description
npm WARN apm-install-dir-20221029-20896-vsezu6.i3yds No repository field.
npm WARN apm-install-dir-20221029-20896-vsezu6.i3yds No README data
npm WARN apm-install-dir-20221029-20896-vsezu6.i3yds No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @aminya/[email protected] install: node-gyp-build || npm run build:libzmq
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @aminya/[email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/doug/.pulsar/.apm/_logs/2022-11-29T09_33_22_685Z-debug.log
I tried running pulsar like: sudo pulsar --no-sandbox and that did generate a diffrent error:
Installing “[email protected]” failed.Hide output…
@aminya/[email protected] install /tmp/apm-install-dir-20221029-28812-hbc6w6.kvik4/node_modules/Hydrogen/node_modules/@aminya/zeromq
node-gyp-build || npm run build:libzmq
[email protected] postinstall /tmp/apm-install-dir-20221029-28812-hbc6w6.kvik4/node_modules/Hydrogen/node_modules/styled-components
node ./postinstall.js
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: json-parser
is deprecated. Please use comment-json
instead
npm WARN deprecated [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
sh: line 1: node-gyp-build: command not found
Error: EACCES: permission denied, scandir '/tmp/apm-install-dir-20221029-28812-hbc6w6.kvik4/node_modules/Hydrogen/node_modules/@aminya/zeromq'
node:internal/modules/cjs/loader:943
throw err;
^
Error: Cannot find module '/tmp/apm-install-dir-20221029-28812-hbc6w6.kvik4/node_modules/Hydrogen/node_modules/styled-components/postinstall.js'
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:940:15)
at Function.Module._load (node:internal/modules/cjs/loader:773:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm WARN enoent ENOENT: no such file or directory, open '/tmp/apm-install-dir-20221029-28812-hbc6w6.kvik4/package.json'
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.8.0 || 16.9.0-alpha.0 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.11.0 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react-dom@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.x.x but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16.x.x but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.0.0 || ^16.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @nteract/[email protected] requires a peer of react@^16.3.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^16.8.0 but none is installed. You must install peer dependencies yourself.
npm WARN apm-install-dir-20221029-28812-hbc6w6.kvik4 No description
npm WARN apm-install-dir-20221029-28812-hbc6w6.kvik4 No repository field.
npm WARN apm-install-dir-20221029-28812-hbc6w6.kvik4 No README data
npm WARN apm-install-dir-20221029-28812-hbc6w6.kvik4 No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: node ./postinstall.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.pulsar/.apm/_logs/2022-11-29T09_50_02_386Z-debug.log
🐧 Red Hat based (Fedora, Alma, RockyLinux, CentOS Stream, etc.)
fedora 37
64-bit(x86_64)
No response
I suggest having a light and a normal version of Pulsar. The light version would not include any build-in packages.
This would allow an installation on machines with less space and ram.
Maybe the build-in packages could only be disabled in the light version and not completely removed
No response
See here for Discord conversation.
Basically we should provide a solution to the various packages to make sure that the Pulsar and PPM commands can always be found on the path.
For example if you currently download the Appimage the only way to get the pulsar
command working is to include it on the path manually even if integrated with appimageinstaller. Same with the tar.gz.
There is already a caveat for macOS in Atom where a command is provided that isn't accessible to other platforms to install the application and apm/ppm commands. (see conversation and atom docs).
When you first open Atom, it will try to install the atom and apm commands for use in the terminal. In some cases, Atom might not be able to install these commands because it needs an administrator password.
...
To install the atom and apm commands, run "Window: Install Shell Commands" from the Command Palette, which will prompt you for an administrator password.
There also seems to be a current issue with the Windows binary not installing this to the path which was seemingly handled by Squirrel. Discord.
Now this does work in many places. The .deb file certainly adds pulsar
to the path and I suspect the .rpm
and macOS .dmg
are similar as the pulsar.sh
file seems to be the one responsible for this.
I think it is important that this gets resolved as currently in the docs it assumes that pulsar -p
will always work and it seems a bit silly to offer formats where this integration isn't possible without manual steps.
It might be useful simply to expose this command to all platforms and extend the logic to work for all of them. This would allow manual install of the command no matter what system it is run on (and in cases where it doesn't work it will be easier to expand this so that it does). This would also potentially solve the Windows problem and take the guesswork out of the existing macOS case.
There should be a mechanism for this to run automatically on first start as well (maybe check from the config.cson) but it maybe shouldn't run without prompting for those who want to use it entirely as a portable app without leaving any traces. Maybe a first start popup asking to integrate Pulsar on the path with a brief explanation.
Seamless integration of the pulsar
and ppm
commands without needing to manually add Pulsar to the path.
Updated installer? A new appimage command for the appimage such as ./Pulsar_1.63.0.appimage --install
that would be the .desktop exec or an option? Use docs to cover this use case?
None really seem ideal with our supported distributions.
I think Zed has this option as it doesn't put itself on the path on first install.
Many other applications simply don't come as an appimage and just as OS specific packages which work natively.
Pulsar icon in Windows 10 taskbar and application only partially displays when the application is running
🪟 Windows
Windows 10 pro 22H2 19045.2251
64-bit(x86_64)
Install latest version of pulsar-edit
Open the application
Screenshot that demonstrates the issue:
Once package installation works form the new backend we will need a way to update said packages.
atom-elixir-formatter for example gives an error and does not work on Pulsar until a small fix is made.
We cannot expect the original maintainers for every package to update their packages in case that is necessary.
Reliable packages
We could go out of our way to be more backward compatible, but considering the numerous third party dependencies this might be very difficult.
No response
These tests on spec/tree-sitter-language-mode-spec.js
fail:
it('terminates comment token at the end of an injection, so that the next injection is NOT a continuation of the comment', async () => {
const ejsGrammar = new TreeSitterGrammar(
atom.grammars,
ejsGrammarPath,
{
id: 'ejs',
parser: 'tree-sitter-embedded-template',
scopes: {
'"<%"': 'directive',
'"%>"': 'directive'
},
injectionPoints: [
{
type: 'template',
language(node) {
return 'javascript';
},
content(node) {
return node.descendantsOfType('code');
},
newlinesBetween: true
},
{
type: 'template',
language(node) {
return 'html';
},
content(node) {
return node.descendantsOfType('content');
}
}
]
}
);
atom.grammars.addGrammar(jsGrammar);
atom.grammars.addGrammar(htmlGrammar);
buffer.setText('<% // js comment %>\n<% b() %>');
const languageMode = new TreeSitterLanguageMode({
buffer,
grammar: ejsGrammar,
grammars: atom.grammars
});
buffer.setLanguageMode(languageMode);
expectTokensToEqual(editor, [
[
{ text: '<%', scopes: ['directive'] },
{ text: ' ', scopes: [] },
{ text: '// js comment ', scopes: ['comment'] },
{ text: '%>', scopes: ['directive'] },
{ text: '', scopes: ['html'] }
],
[
{ text: '<%', scopes: ['directive'] },
{ text: ' ', scopes: [] },
{ text: 'b', scopes: ['function'] },
{ text: '() ', scopes: [] },
{ text: '%>', scopes: ['directive'] }
]
]);
});
This also fails, and it's testing internal state of the editor:
it('respects the `includeChildren` property of injection points', async () => {
const rustGrammar = new TreeSitterGrammar(
atom.grammars,
rustGrammarPath,
{
scopeName: 'rust',
parser: 'tree-sitter-rust',
scopes: {
identifier: 'variable',
field_identifier: 'property',
'call_expression > field_expression > field_identifier':
'function',
'macro_invocation > identifier': 'macro'
},
injectionRegExp: 'rust',
injectionPoints: [
{
type: 'macro_invocation',
language() {
return 'rust';
},
content(node) {
return node.lastChild;
},
// The tokens within a `token_tree` are all parsed as separate
// children of the `token_tree`. By default, when adding a language
// injection for a node, the node's children's ranges would be
// excluded from the injection. But for this injection point
// (parsing token trees as rust code), we want to reparse all of the
// content of the token tree.
includeChildren: true
}
]
}
);
atom.grammars.addGrammar(rustGrammar);
// Macro call within another macro call.
buffer.setText('assert_eq!(a.b.c(), vec![d.e()]); f.g();');
const languageMode = new TreeSitterLanguageMode({
buffer,
grammar: rustGrammar,
grammars: atom.grammars
});
buffer.setLanguageMode(languageMode);
// There should not be duplicate scopes due to the root layer
// and for the injected rust layer.
expectTokensToEqual(editor, [
[
{ text: 'assert_eq', scopes: ['macro'] },
{ text: '!(', scopes: [] },
{ text: 'a', scopes: ['variable'] },
{ text: '.', scopes: [] },
{ text: 'b', scopes: ['property'] },
{ text: '.', scopes: [] },
{ text: 'c', scopes: ['function'] },
{ text: '(), ', scopes: [] },
{ text: 'vec', scopes: ['macro'] },
{ text: '![', scopes: [] },
{ text: 'd', scopes: ['variable'] },
{ text: '.', scopes: [] },
{ text: 'e', scopes: ['function'] },
{ text: '()]); ', scopes: [] },
{ text: 'f', scopes: ['variable'] },
{ text: '.', scopes: [] },
{ text: 'g', scopes: ['function'] },
{ text: '();', scopes: [] }
]
]);
});
I made a mistake earlier and disabled "settings-view".
At the time it seemed the only way to get it back was to perform a clean install.
Then I found I could enable it by removing the disabled package from the list in config.cson
I did a search for "enable package" in on the pulsar website, but nothing came up.
On the other hand, search on "package" gave me results related to maintaining packages that was very long on screen and didn't scroll.
So there are two fixes for this:
For example:
title: Enable and disable packages in Pulsar Edit
This page explains how to enable and disable packages via the settings page or in the config.cson settings file.
disabledPackages
.disabledPackages
if it does not already exist:disabledPackages: [
]
disabledPackages: [
"package-name-to-disable"
]
This probably speaks for itself, however, we need a terminal that's somehow accessible within Pulsar or as a menu option. Many plugins that were popular for this option no longer exist, and even a stopgap solution would be ideal of the "open in terminal" as a right click from the tree.
It could be a plugin, but until interest is drawn, I don't see that as a viable solution. There are probably many other ones we could fork as possible solutions, but that involves someone maintaining it and that could be an unknown at this point how long this will last since we've had plenty join our discord but not many speak up or show much interest in these kinds of manners. As shown in the #community-packages channel in discord, many of these have fallen into neglect since 2019 at the minimum, with many others (that may work with some tweaks) having not been touched since 2016 from the commit histories.
This could help as productivity enhancement, even if just adding a right click menu to satisfy this goal. If not, an eventual terminal built in functioning off whatever the user default is on Linux or elsewhere. (since I personally use fish/omf and I know many go straight bash or some version of zsh)
Originally, this was to bump Electron to 13. But considering the effort it took and that it almost worked out of the box for Electron 19, I'm bumping this to move the further we can before other things break down.
Electron 19 is not working yet. Superstring is the library we need to port to make the editor at least not crash.
I had some luck with Superstring compiled with WASM, but we have some APIs that we need to reimplement (for now, I know of TextBuffer.load
) probably on Node (as WASM doesn't have support for native FS unless you do some weird things)
So far, what needs to be done:
atom.repository
will become asyncAbility to keep bumping Electron versions
None that I know of
WASM support have trade-offs compared with NAPI. Both are slower than the Nan version Superstring uses, and there's nothing we can actually do - newer Electron versions are context-aware, and superstring uses memcpy
to copy text and this will not work anymore;
WASM is better because we just need to compile once, then every place can use the same WASM. It's also worse because WASM requiring is asynchronous, meaning we need to "await" until Superstring is ready to be consumed. Pulsar does not use ESM (which are async) so all require
s are synchronous.
When Right Clicking on a File or Folder in Windows 10, Atom appears on the Right Click Menu, like the image below.
But when on Windows 11 this does not happen. The same is true for Atom not appearing on Windows 11, but would be something I'd love to see fixed and working on modern OS's.
🪟 Windows
Windows 11 & Windows 10
64-bit(x86_64)
No response
Before I start, I'll clarify that I'm not a software coder (just a web coder) so I wouldn't know how to hack the code to fix anything. Secondly, I found getting a release confusing so I don't really know if I have the latest or not. Info below:
Pulsar : 1.63.2022111606 Electron: 12.2.3 Chrome : 89.0.4389.128 Node : 14.16.0
Issue is: Pulsar doesn't run off the command line and won't run on command line without sudo
. In both cases there are errors, which I'll lay out below.
I also don't have any extensions/modules installed at the point of writing this.
Final Note: There is always a possibility that I messed something up in the installation. So I'm looking for a solution to the problem, which may - or may not - be a bug.
In the interim I will try to look into the libva errors below because I think they occur in other places than pulsar. I've given four versions/cases below of methods of launching Pulsar and only one yields the libva error.
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Linux Mint 1 (Cinnamon 5.4.12)
64-bit(x86_64)
Version 1: Running without sudo
pulsar --safe cp: cannot stat 'resources/linux/desktopenviroment/cinnamon/pulsar.nemo_action': No such file or directory /usr/bin/pulsar: line 194: 8756 Trace/breakpoint trap (core dumped) nohup "$PULSAR_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null) [8756:1123/200526.136236:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
Result: Pulsar does not load.
Version 2: Running with sudo
sudo pulsar --safe expr: syntax error: missing argument after ‘8’
Result: Pulsar does not load, but none of the above errors occurs either. Running with sudo but without --safe also does not result in Pulsar loading.
Version 3: Running with sudo and --no-sandbox
sudo pulsar --no-sandbox expr: syntax error: missing argument after ‘8’
Result: Pulsar loads, despite the singular error -but none of the the libva errors in version 1 occurs either.
Version 4: Running without sudo
but with --no-sandbox
pulsar --no-sandbox cp: cannot stat 'resources/linux/desktopenviroment/cinnamon/pulsar.nemo_action': No such file or directory
Result: Pulsar loads despite the error.
Kernel: 5.15.0-53-generic
NVIDIA Driver: 470.141.03 (not the latest because the latest ones crashed my system)
Graphics Card: NVIDIA GeForce RTX 3050
Memory: 31.2 GiB
Just what it says on the title
🐧 Debian based (Linux Mint, Ubuntu, etc.)
20.04
64-bit(x86_64)
Ensure that /tmp/a.js
doesn't exist
Open pulsar with pulsar /tmp/a.js
Edit the file and save
Open /tmp/a.js
with other editor
Change contents and save
Pulsar's contents will not be updated
No response
With any new version of Pulsar (binaries generated from Cirrus) try the following:
autocomplete-css
The right this is for the README of the package to appear.
Several important packages are currently broken in Pulsar (as well as the most recent Atom releases), this seems to be an issue related to the bump from Electron 9 to newer versions.
I'm personally experiencing the issue with ide-python, but there are reports of similar issues with atom-ide-javascript and atom-ide-debugger. These packages all give the message
"Failed to activate the X package
call.getFIleName is not a function."
I have this issue in the latest issue of Pulsar, I do not have the issue with Atom 1.60.0 although it does occur in all versions after this. I'm using macOS 12.6.1 but there are also reports of this issue happening in Windows and Linux versions.
Related issues
[(https://github.com/atom/atom/issues/25398)]
[https://github.com/atom-community/ide-python/issues/483]
🍎 macOS
12.6.1
64-bit(x86_64)
Have one of the following packages installed:
the error appears on opening Pulsar and again on opening a new window.
No response
Opening any project folder, the tree view shows all files regardless of whether they match entries in the "Ignored Names" section of the preferences (even if the ignored names are left at default).
In particular I have .DS_store items showing up everywhere. I don't have this issue in Atom.
(running Pulsar 1.63.2022120405)
🍎 macOS
macOS 12.6.1
64-bit(x86_64)
Problem exists immediately with no special configuration
No response
On spec/workspace-element-spec.js
, fix this test, or migrate to Visual Tests:
describe('mousing over docks', () => {
let workspaceElement;
let originalTimeout = jasmine.getEnv().defaultTimeoutInterval;
beforeEach(() => {
workspaceElement = atom.workspace.getElement();
workspaceElement.style.width = '600px';
workspaceElement.style.height = '300px';
jasmine.attachToDOM(workspaceElement);
// To isolate this test from unintended events happening on the host machine,
// we remove any listener that could cause interferences.
window.removeEventListener(
'mousemove',
workspaceElement.handleEdgesMouseMove
);
workspaceElement.htmlElement.removeEventListener(
'mouseleave',
workspaceElement.handleCenterLeave
);
jasmine.getEnv().defaultTimeoutInterval = 10000;
});
afterEach(() => {
jasmine.getEnv().defaultTimeoutInterval = originalTimeout;
window.addEventListener(
'mousemove',
workspaceElement.handleEdgesMouseMove
);
workspaceElement.htmlElement.addEventListener(
'mouseleave',
workspaceElement.handleCenterLeave
);
});
it('shows the toggle button when the dock is open', async () => {
await Promise.all([
atom.workspace.open({
element: document.createElement('div'),
getDefaultLocation() {
return 'left';
},
getPreferredWidth() {
return 150;
}
}),
atom.workspace.open({
element: document.createElement('div'),
getDefaultLocation() {
return 'right';
},
getPreferredWidth() {
return 150;
}
}),
atom.workspace.open({
element: document.createElement('div'),
getDefaultLocation() {
return 'bottom';
},
getPreferredHeight() {
return 100;
}
})
]);
const leftDock = atom.workspace.getLeftDock();
const rightDock = atom.workspace.getRightDock();
const bottomDock = atom.workspace.getBottomDock();
expect(leftDock.isVisible()).toBe(true);
expect(rightDock.isVisible()).toBe(true);
expect(bottomDock.isVisible()).toBe(true);
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// --- Right Dock ---
// Mouse over where the toggle button would be if the dock were hovered
moveMouse({ clientX: 440, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// Mouse over the dock
moveMouse({ clientX: 460, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonVisible(rightDock, 'icon-chevron-right');
expectToggleButtonHidden(bottomDock);
// Mouse over the toggle button
moveMouse({ clientX: 440, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonVisible(rightDock, 'icon-chevron-right');
expectToggleButtonHidden(bottomDock);
// Click the toggle button
rightDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(rightDock.isVisible()).toBe(false);
expectToggleButtonHidden(rightDock);
// Mouse to edge of the window
moveMouse({ clientX: 575, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(rightDock);
moveMouse({ clientX: 598, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonVisible(rightDock, 'icon-chevron-left');
// Click the toggle button again
rightDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(rightDock.isVisible()).toBe(true);
expectToggleButtonVisible(rightDock, 'icon-chevron-right');
// --- Left Dock ---
// Mouse over where the toggle button would be if the dock were hovered
moveMouse({ clientX: 160, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// Mouse over the dock
moveMouse({ clientX: 140, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonVisible(leftDock, 'icon-chevron-left');
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// Mouse over the toggle button
moveMouse({ clientX: 160, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonVisible(leftDock, 'icon-chevron-left');
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// Click the toggle button
leftDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(leftDock.isVisible()).toBe(false);
expectToggleButtonHidden(leftDock);
// Mouse to edge of the window
moveMouse({ clientX: 25, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
moveMouse({ clientX: 2, clientY: 150 });
await getNextUpdatePromise();
expectToggleButtonVisible(leftDock, 'icon-chevron-right');
// Click the toggle button again
leftDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(leftDock.isVisible()).toBe(true);
expectToggleButtonVisible(leftDock, 'icon-chevron-left');
// --- Bottom Dock ---
// Mouse over where the toggle button would be if the dock were hovered
moveMouse({ clientX: 300, clientY: 190 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonHidden(bottomDock);
// Mouse over the dock
moveMouse({ clientX: 300, clientY: 210 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonVisible(bottomDock, 'icon-chevron-down');
// Mouse over the toggle button
moveMouse({ clientX: 300, clientY: 195 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
expectToggleButtonHidden(rightDock);
expectToggleButtonVisible(bottomDock, 'icon-chevron-down');
// Click the toggle button
bottomDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(bottomDock.isVisible()).toBe(false);
expectToggleButtonHidden(bottomDock);
// Mouse to edge of the window
moveMouse({ clientX: 300, clientY: 290 });
await getNextUpdatePromise();
expectToggleButtonHidden(leftDock);
moveMouse({ clientX: 300, clientY: 299 });
await getNextUpdatePromise();
expectToggleButtonVisible(bottomDock, 'icon-chevron-up');
// Click the toggle button again
bottomDock.refs.toggleButton.refs.innerElement.click();
await getNextUpdatePromise();
expect(bottomDock.isVisible()).toBe(true);
expectToggleButtonVisible(bottomDock, 'icon-chevron-down');
});
function moveMouse(coordinates) {
// Simulate a mouse move event by calling the method that handles that event.
workspaceElement.updateHoveredDock({
x: coordinates.clientX,
y: coordinates.clientY
});
advanceClock(100);
}
function expectToggleButtonHidden(dock) {
expect(dock.refs.toggleButton.element).not.toHaveClass(
'atom-dock-toggle-button-visible'
);
}
function expectToggleButtonVisible(dock, iconClass) {
expect(dock.refs.toggleButton.element).toHaveClass(
'atom-dock-toggle-button-visible'
);
expect(dock.refs.toggleButton.refs.iconElement).toHaveClass(iconClass);
}
});
See gif below.
The screen "splits" within the editor causing a visual error and strange scrolling behaviour and a horizontal scrollbar in the wrong place.
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Linux Mint 20.3
64-bit(x86_64)
I haven't been able to replicate this as such. The file itself is an untitled file with content. I had a ton of tabs open and was clicking rapidly to close the ones I didn't want and this error showing on this tab.
(I had to lie about replicating in safe mode as I can't reliably replicate this yet I've seen it a few times).
Dev version commit f4dfa04
This is apparently an old Atom bug that is yet to be resolved and is difficult to replicate reliably. Logging it so we can keep track and refer any duplicates.
Console logs checked but nothing of relevance.
HTML of the editor pane attached.
bug_html.txt
Versions generated with electron-builder
do not work correctly with APM - it gets installed on the Pulsar "resources" directory and we don't actually put that on PATH. I see two solutions for us on this case:
apm
to the same PATH that pulsar
gets. This will keep the same functionality that we have on Atom, or;pulsar
accept a different argument called package
and then redirect this to apm
. In this case, instead of typing apm install <package>
we could type pulsar package install <package>
While number 1 will keep the same funcionality we have today, I feel that 2 may be desirable because we can change how we bundle APM in the future - we can rename to ppm
, or we can use it internally on Pulsar instead, and nobody will feel anything is different
The packages to speed up the workflow of web development and improve the convenience on completing HTML tags.
In my opinion, a text editor which supports for web development should have some HTML tag features which are able to edit both HTML start and end tag at the same time, able to autoclose HTML tag after completing a HTML start tag like , and also the emmet which very useful to speed up the workflow of web development.
No response
FYI:
I haven't reproduced issue in safe mode because I have atom installed on the system and the atom --safe
fires that up instead
There's no debugging involved. It's just a URL change.
"How to update" link on the Help > About page links to the old atom site
https://flight-manual.atom.io/getting-started/sections/installing-atom/)
Link the page to the Pulsar Download page
https://pulsar-edit.dev/download.html
🪟 Windows
10
64-bit(x86_64)
No response
Atom: 1.63.2022110914 x64
Electron: 12.2.3
OS: linux 6.0.7-arch1-1
Thrown From: Atom Core
Uncaught Error: Cannot decorate a destroyed marker
At /opt/Pulsar/resources/app.asar/src/decoration-manager.js:220
Error: Cannot decorate a destroyed marker
at DecorationManager.decorateMarker (/app.asar/src/decoration-manager.js:208:21)
at TextEditor.decorateMarker (/app.asar/src/text-editor.js:2797:35)
at GitDiffView.markRange (git-diff-view.js:264:17)
at GitDiffView.updateDiffs (git-diff-view.js:247:25)
-1:17 tabs:close-all-tabs (div.title.icon.ruby-icon.medium-red)
-1:12.5.0 open-terminal-here:open (div.header.list-item.project-root-header)
🐧 Arch based (Manjaro, Garuda, etc.)
Gnome 43 Wayland
64-bit(x86_64)
Issue has been reported in Atom, but was closed due to inactivity atom/atom#19173. This issue is probably triggered by pulsar-edit/github .
Hacking the init script is a bit daunting if a user doesn't know both Javascript and some of the Pulsar specific stuff.
I'm thinking it would be a good idea if we could make a much more detailed commented out init script that can show off some of the more interesting things that you can do with Pulsar and play around with to really show off the hackability side of it.
We could also provide links to the relevant Pulsar docs within it.
Highlights Pulsar's "hyper-hackable" USP by lowering the barrier for entry and providing a demo of what kinds of things can be done.
A docs section with tutorial, example init files or a community wiki with demonstrations.
Lite-XL has an init.lua
:
-- put user settings here
-- this module will be loaded after everything else when the application starts
-- it will be automatically reloaded when saved
local core = require "core"
local keymap = require "core.keymap"
local config = require "core.config"
local style = require "core.style"
------------------------------ Themes ----------------------------------------
-- light theme:
-- core.reload_module("colors.summer")
--------------------------- Key bindings -------------------------------------
-- key binding:
-- keymap.add { ["ctrl+escape"] = "core:quit" }
------------------------------- Fonts ----------------------------------------
-- customize fonts:
style.font = renderer.font.load(DATADIR .. "/fonts/FiraSans-Regular.ttf", 12 * SCALE)
-- style.code_font = renderer.font.load(DATADIR .. "/fonts/JetBrainsMono-Regular.ttf", 14 * SCALE)
--
-- DATADIR is the location of the installed Lite XL Lua code, default color
-- schemes and fonts.
-- USERDIR is the location of the Lite XL configuration directory.
--
-- font names used by lite:
-- style.font : user interface
-- style.big_font : big text in welcome screen
-- style.icon_font : icons
-- style.icon_big_font : toolbar icons
-- style.code_font : code
--
-- the function to load the font accept a 3rd optional argument like:
--
-- {antialiasing="grayscale", hinting="full", bold=true, italic=true, underline=true, smoothing=true, strikethrough=true}
--
-- possible values are:
-- antialiasing: grayscale, subpixel
-- hinting: none, slight, full
-- bold: true, false
-- italic: true, false
-- underline: true, false
-- smoothing: true, false
-- strikethrough: true, false
------------------------------ Plugins ----------------------------------------
-- enable or disable plugin loading setting config entries:
-- enable plugins.trimwhitespace, otherwise it is disable by default:
-- config.plugins.trimwhitespace = true
--
-- disable detectindent, otherwise it is enabled by default
-- config.plugins.detectindent = false
---------------------------- Miscellanous --------------------------------------
-- modify list of files to ignore when indexing the project:
-- config.ignore_files = {
-- -- folders
-- "^%.svn/", "^%.git/", "^%.hg/", "^CVS/", "^%.Trash/", "^%.Trash%-.*/",
-- "^node_modules/", "^%.cache/", "^__pycache__/",
-- -- files
-- "%.pyc$", "%.pyo$", "%.exe$", "%.dll$", "%.obj$", "%.o$",
-- "%.a$", "%.lib$", "%.so$", "%.dylib$", "%.ncb$", "%.sdf$",
-- "%.suo$", "%.pdb$", "%.idb$", "%.class$", "%.psd$", "%.db$",
-- "^desktop%.ini$", "^%.DS_Store$", "^%.directory$",
-- }
Some window managers and other non-text editor applications have similar commented config files, such as the Kitty terminal kitty.conf
file.
Tests like this are flaky: sometimes they pass, sometimes they dont:
On spec/config-spec.js
:
it("saves the user's config to disk after it stops changing", () => {
atom.config.set('foo.bar.baz', 42);
expect(savedSettings.length).toBe(0);
atom.config.set('foo.bar.baz', 43);
expect(savedSettings.length).toBe(0);
atom.config.set('foo.bar.baz', 44);
advanceClock(10);
expect(savedSettings.length).toBe(1);
});
Changing advanceClock
to a higher value does nothing either
If you open Command Palette and asks for the command "open my snippets" it will not actually open the snippets - it'll open a blank file, and if you add something on that file, the snippet is not actually detected.
🐧 Debian based (Linux Mint, Ubuntu, etc.)
Ubuntu 20.04
64-bit(x86_64)
Choose "open my snippets" from command palette
No response
On opening the "Install packages" pane it generates an error under "Featured packages".
The same error can be seen when attempting to install a package.
Indicates error with git-utils
.
Installing “[email protected]” failed.Hide output…
internal/modules/cjs/loader.js:1122
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: The module '/Applications/Pulsar.app/Contents/Resources/app/ppm/node_modules/git-utils/build/Release/git.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 83. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1122:18)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/Applications/Pulsar.app/Contents/Resources/app/ppm/node_modules/git-utils/src/git.js:3:22)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
🍎 macOS
macOS 11.5.2 20G95 x86_64
64-bit(x86_64)
Cirrus binary https://cirrus-ci.com/task/6482747400126464
Commit 2d37d3d
Installed Pulsar edit Pulsar 1.63.2022120404 from binaries.
atom
commands fail with errors:
atom --safe
atom --version
FYI, I also tried pulsar
in place of atom
in case that worked but got the same errors.
This could mean it's genuinely broken, or there are changed commands for Pulsar.
Source of debugging info from bug checklist above:
🪟 Windows
Windows 10 Pro 22H2 19045.2251
64-bit(x86_64)
Application auto-starts on install completion.
(Issue checklist links to: https://pulsar-edit.dev/docs/atom-archive/faq/sections/what-does-safe-mode-do.html)
Open windows command line and enter the command atom --safe
Error message:
Windows CMD:
C:\Users\me>atom --safe
'atom' is not recognized as an internal or external command,
operable program or batch file.
Windows Powershell:
PS C:\Users\me> atom --safe
atom : The term 'atom' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ atom --safe
+ ~~~~
+ CategoryInfo : ObjectNotFound: (atom:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Git bash:
$ atom --safe
bash: atom: command not found
No response
I still see "Atom" mentions in different places.
Read the README, click some links.
Expected behavior:
Everything is about "Pulsar".
Actual behavior:
How often does this happen:
100%
Current.
If you open two versions of pulsar, and change configs in one editor, the other does not get updated
🐧 Debian based (Linux Mint, Ubuntu, etc.)
20.04
64-bit(x86_64)
Open pulsar
Open other pulsar instance
Change any config on any instance
Check that the other instance does not get updated
No response
About the workspace feature discuss on Discord, here how I imagine this feature:
We can create few defaults workspace like Light editor and IDE mode (or whatever).
User can create/edit/delete workspaces to fit his project needs.
Workspace
-> Light editor
and it disable all packages (for example).Workspace
-> NodeJS project
and it load all packages needed to work on NodeJS project (let's set some packages by default and let user custom them in workspace settings)< Workspaces Select input > | Add | Edit | Remove |
---|---|---|---|
Light editor | |||
NodeJS | |||
C++ supacool workspace | |||
... |
User can enable/disable package:
| Packages | Enable |
|-------------------|--------|
| Terminal | |
| AnotherPackage | x |
| AnotherPackagetoo | |
no alt actually
No response
We need to cover the other bases for the build with linux. Namely, AUR, Snap, and flatpak. Especially so that we could get at least posted into the beta branch of flatpak if not the same elsewhere with it labeled as such.
This just allows us to better support other platforms. Seeing as right now we kinda cut out a lot of people. Especially those who prefer that containerized workflow.
When going into Settings and clicking Install on the sidebar, under the Featured Packages Section shows nothing
🪟 Windows
21H1 (Build: 19043.2251)
64-bit(x86_64)
This issue is present for my Windows Machine on the Pulsar Binary (That has the exact one I've got installed on that link).
This issue was also present to another user building from Source from Master and they are running:
Manjaro Linux ; (rolling)/Gnome-42.4
For my Windows System:
Search is positioned differently in the RH-click menu when you click different nodes in the tree view
It'd be really great to have the search right at the top at all times. Or at the very least, in a consistent position regardless of which node you RH-clic
Consistency of experience.
As it is, the user has to jump around to find the search depending on which node you click.
None I can see >.<
No response
Currently, builds generated with electron-builder
install just fine, but running pulsar .
on the terminal locks the terminal.
Ideally, we want to not lock up anything - that is, pulsar .
allows for us to keep using the terminal. This have some advantages, as if we close the terminal, we don't kill all running windows of Pulsar.
One possible way to do this (on Linux) is to use the post-install
scripts to install the pulsar
batch file on PATH, and move the pulsar
that is generated with electron-builder
to another name. We need to investigate how to do this on MacOSX too (windows are fine, these don't lock the terminal)
When opening Pulsar on Windows the taskbar icon is "cut in half"
🪟 Windows
22H2 OS Build: 19045.2251
64-bit(x86_64)
This issue is present until pinning the Application Icon to the taskbar, then it becomes resolved.
Seems this issue is exactly as reported here.
I've looked through our ./scripts/electron-builder.js
and can't find how we could reproduce those results.
The only thing that may work is changing the windows binaries to include the .png
. Since really when looking through the Pulsar install folder I can't locate the .ico
at all. But am easily able to locate the .png
.
So it's possible that Windows is somehow falling back to that icon? So it may be worth a try, and will attempt if I get the chance. Otherwise someone more familiar with Electron Builder could try and take a look here
Reduce generated package size. Pulsar installed size is significantly larger that Atom. This is because atom build scripts use an extensive list of files to be excluded/included in final package as can be seen at https://github.com/atom/atom/blob/master/script/lib/include-path-in-packaged-app.js.
Faster installs
No
No response
Merge atom/language-python#313 and the like
See the PR contents
This modifies core grammars.
No response
The Azure Pipelines linked in the README is linking to Atom Community. Also, binaries are missing due to this. Setting up Azure Pipelines would be great.
Crash on startup on virtualbox rocky 9
Version used:
pulsar-1.63.2022111616.x86_64.rpm
🐧 Red Hat based (Fedora, Alma, RockyLinux, CentOS Stream, etc.)
rocky9
64-bit(x86_64)
Just run the program in a virtualbox with rocky9
techmago@rocky9 ~/Área de trabalho $ /usr/bin/pulsar, linha 194: 3051 Trace/breakpoint trap (imagem do núcleo gravada)nohup "$PULSAR_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[3051:1116/193018.541178:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
I'm bringing an issue that Electron had into here (for a long time) to track its development.
electron/electron#34211 (comment)
I'm not sure about this but I read somewhere that Pulsar was open to allowing the menu bar to be hacked (and therefore every part of the editor)? This would then be covered when that is considered as well.
Many people are having this issue, there were about 5 or 6 issues that I saw over multiple repos Electron, Atom. These ranged from language switching issues because of this new feature, important keyboard shortcuts causing issues, and just pressing the alt-key alone causing the menu bar to be focused accidently.
VSCode has settings to adjust this, but Atom doesn't. Not sure about Pulsar. See the last comment on the issue referenced.
This was a new update at some point causing the problem with Electron. VSCode has settings to adjust this.
When using the folder search, when Pulsar looks inside certain folders, in this case pulsar/pulsardev/pulsar/ppm/node_modules/asar/test/expected
it creates a bunch of ENOENT errors at the top of the screen which cannot be dismissed.
When looking at the dir indicated, these files do not exist.
This can be replicated on a wide variety of platforms and doesn't matter if launched from source or from a binary. It has been replicated on a Linux source build, Linux arm binary, macOS intel binary and Windows binary.
This is also present on the latest version of Atom. See - https://discord.com/channels/992103415163396136/992109539346370661/1042997814294237205
❓ Other(Please specify in the OS details field below)
Linux (Debian based), macOS and Windows
64-bit(x86_64)
pulsar
project in Pulsar. The project must be installed, build and have ppm built.pulsar
directory and select "Search in Folder"pulsar
urlWeb
in the top text search boxCommit hash: 7de77d2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.