Code Monkey home page Code Monkey logo

pulsar's Introduction


Badge Discussions   Badge Discord   Badge Reddit   Badge Mastodon   Badge Lemmy  

Badge Status   Badge License


Pulsar


Button Install    Button Documentation    Button Build

Badge Codacy    Badge Crowdin    Badge OpenCollective


A Community-led Hyper-Hackable Text Editor, Forked from Atom, built on Electron.

Designed to be deeply customizable, but still approachable using the default configuration.



Preview

pulsar's People

Contributors

50wliu avatar aminya avatar as-cii avatar benogle avatar binarymuse avatar confused-techie avatar damieng avatar darangi avatar daviwil avatar deedeeg avatar defunkt avatar gjtorikian avatar izuzak avatar jasonrudolph avatar joshaber avatar kevinnathan avatar kevinsawicki avatar kuychaco avatar lee-dohm avatar mauricioszabo avatar maxbrunsfeld avatar mnquintana avatar probablycorey-and-nathan avatar rafeca avatar sadick254 avatar savetheclocktower avatar simurai avatar smashwilson avatar thedaniel avatar zcbenz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pulsar's Issues

Remove Telemetry from Core

Summary

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.

Motivation

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.

Additional context

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.

command line atom commands not working in pulsar 1.63.2022120404

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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:

Which OS does this happen on?

🪟 Windows

OS details

Windows 10 Pro 22H2 19045.2251

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Part 1 - install pulsar

  1. Download Windows binary.zip from Cirrus CI site > https://cirrus-ci.com/task/4754549466988544
  2. Extract files from zip
  3. Install software using Pulsar Setup 1.63.2022120404.exe

Application auto-starts on install completion.

Part 2 - attempt to open in safe mode

(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

Result

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

Additional Information:

No response

Add a terminal or menu option to open one w/in the editor

Summary

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.

Motivation

Are there any other possible alternatives? (Is this really the best solution or only option to add this feature? Could it be a plugin?)

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.

Additional context

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)

Featured Packages shows Nothing

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

When going into Settings and clicking Install on the sidebar, under the Featured Packages Section shows nothing

Which OS does this happen on?

🪟 Windows

OS details

21H1 (Build: 19043.2251)

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Open Settings
  2. Click "Install" on sidebar
  3. View section under Featured Packages

Additional Information:

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:

  • Electron: 12.2.1
  • Chrome: 89.04389.128
  • Node: 14.16.0
  • Pulsar: 1.63.2022111100 x64

Core package's READMEs are not appearing

With any new version of Pulsar (binaries generated from Cirrus) try the following:

  1. Open settings
  2. Click "packages"
  3. Click on any "core" package like autocomplete-css
  4. No readme is appearing

The right this is for the README of the package to appear.

Allow running APM / PPM commands

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:

  1. On some "post install" method, link the apm to the same PATH that pulsar gets. This will keep the same functionality that we have on Atom, or;
  2. Make the command 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

Fix config tests that check for debounces on the `config.set`

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

Open your snippets is not working

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Ubuntu 20.04

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Choose "open my snippets" from command palette

Additional Information:

No response

Uncaught Error: Cannot decorate a destroyed marker

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

Versions

Atom: 1.63.2022110914 x64
Electron: 12.2.3
OS: linux 6.0.7-arch1-1
Thrown From: Atom Core

Stack Trace

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)

Commands

     -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)

Which OS does this happen on?

🐧 Arch based (Manjaro, Garuda, etc.)

OS details

Gnome 43 Wayland

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Leave open files and a git diff tab
  2. Close Pulsar
  3. Open Pulsar and close all tabs when editor has not fully loaded yet

Additional Information:

Issue has been reported in Atom, but was closed due to inactivity atom/atom#19173. This issue is probably triggered by pulsar-edit/github .

Keep Atom functionality to not "lock" the terminal

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)

"Demo" init file

Have you checked for existing feature requests?

  • Completed

Summary

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.

Enter your response below:

Highlights Pulsar's "hyper-hackable" USP by lowering the barrier for entry and providing a demo of what kinds of things can be done.

Any alternatives?

A docs section with tutorial, example init files or a community wiki with demonstrations.

Other examples:

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.

Config doesn't get watched

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

If you open two versions of pulsar, and change configs in one editor, the other does not get updated

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

20.04

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Open pulsar
Open other pulsar instance
Change any config on any instance

Check that the other instance does not get updated

Additional Information:

No response

Various Errors and/or Non-Launch Depending on Launch Method

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Linux Mint 1 (Cinnamon 5.4.12)

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

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.

Additional Information:

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

Help > About > How to update link goes to old Atom site

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

My environment

  • Windows 10
  • Pulsar 1.63.2022112905

Issue

"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/)

Suggested fix

Link the page to the Pulsar Download page

https://pulsar-edit.dev/download.html

Which OS does this happen on?

🪟 Windows

OS details

10

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Open pulsar editor
  2. Click Help > About
  3. Click "How to update" link in the middle of the page.

Additional Information:

No response

Consistent placement of "search" in the tree-view rh-click menu

Have you checked for existing feature requests?

  • Completed

Summary

Search is positioned differently in the RH-click menu when you click different nodes in the tree view

  • Root node -- it's positioned 15th from the top.
  • Any other folder -- it's positioned right at the top.

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

Enter your response below:

Consistency of experience.
As it is, the user has to jump around to find the search depending on which node you click.

Any alternatives?

None I can see >.<

Other examples:

No response

Fix tree-sitter's tests for injection points

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: [] }
          ]
        ]);
      });

Minor but strange > Pulsar icon doesn't display properly on Windows 10

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

Pulsar icon in Windows 10 taskbar and application only partially displays when the application is running

Which OS does this happen on?

🪟 Windows

OS details

Windows 10 pro 22H2 19045.2251

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Install latest version of pulsar-edit
Open the application

Additional Information:

Screenshot that demonstrates the issue:

pulsar-edit-partial-icon-win10

Light installation

Have you checked for existing feature requests?

  • Completed

Summary

I suggest having a light and a normal version of Pulsar. The light version would not include any build-in packages.

Enter your response below:

This would allow an installation on machines with less space and ram.

Any alternatives?

Maybe the build-in packages could only be disabled in the light version and not completely removed

Other examples:

No response

Tree view not respecting "ignored names"

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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)

Which OS does this happen on?

🍎 macOS

OS details

macOS 12.6.1

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Problem exists immediately with no special configuration

Additional Information:

No response

Flaky test

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Any

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Check CI

Additional Information:

No response

Windows Icon "Cut in Half" on Taskbar

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

When opening Pulsar on Windows the taskbar icon is "cut in half"
image

Which OS does this happen on?

🪟 Windows

OS details

22H2 OS Build: 19045.2251

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Install Pulsar
  2. Launch Pulsar
  3. View Taskbar

Additional Information:

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

alt-key menu bar focus interference

Have you checked for existing feature requests?

  • Completed

Summary

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.

Enter your response below:

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.

Any alternatives?

VSCode has settings to adjust this, but Atom doesn't. Not sure about Pulsar. See the last comment on the issue referenced.

Other examples:

This was a new update at some point causing the problem with Electron. VSCode has settings to adjust this.

Document or prevent settings-view package being disabled

Have you checked for existing feature requests?

  • Completed

Summary

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:

  1. don't allow "settings-view" to be disabled in the first place as this is ultimately core functionality (IMO)
  2. document what to do if a package is disabled.

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.

Enable and disable packages via the settings page

  1. Click Packages > Open Package Manger
  2. Search for the package.
  3. Click Enable or Disable as required.

Enable packages via config.cson

  1. Click File > Config
  2. Scroll to find disabledPackages.
  3. Select the package with surrounding quotes and delete.
  4. Click File > Save.

Disable packages via config.cson

  1. Click File > Config
  2. Add disabledPackages if it does not already exist:
disabledPackages: [

    ]
  1. Add your package-to-disable within the square brackets, for example:
disabledPackages: [
      "package-name-to-disable"
    ]

Fix Dock tests on Pulsar

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);
    }
  });

ENOENT error when searching in ppm node_modules/asar

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.
image

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

image

Which OS does this happen on?

❓ Other(Please specify in the OS details field below)

OS details

Linux (Debian based), macOS and Windows

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Open the pulsar project in Pulsar. The project must be installed, build and have ppm built.
  2. Right click the pulsar directory and select "Search in Folder"
  3. Make sure the bottom text area (File/directory pattern) is pulsar
  4. Search for urlWeb in the top text search box
  5. Errors will show at top of screen and cannot be dismissed

Additional Information:

Commit hash: 7de77d2

Workspace feature

Have you checked for existing feature requests?

  • Completed

Summary

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.

Enter your response below:

For example:

  • I just need a light editor, so I go to Workspace -> Light editor and it disable all packages (for example).
  • I want to work on NodeJS project, and I know I need, JS syntax, a terminal to run commands, git etc... I go to 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)

In menu (like package or whatever)

  • Workspace
    • Light editor
    • NodeJS
    • C++ supacool workspace
    • WhateverUserCreate
    • ...
    • [Manage Workspaces]

In a Workspaces tab:

< Workspaces Select input > Add Edit Remove
Light editor
NodeJS
C++ supacool workspace
...

User can enable/disable package:

| Packages          | Enable |
|-------------------|--------|
| Terminal          |        |
| AnotherPackage    |    x   |
| AnotherPackagetoo |        |

Any alternatives?

no alt actually

Other examples:

No response

Merge grammar PRs

Have you checked for existing feature requests?

  • Completed

Summary

Merge atom/language-python#313 and the like

Enter your response below:

See the PR contents

Any alternatives?

This modifies core grammars.

Other examples:

No response

We need a way to update packages

Have you checked for existing feature requests?

  • Completed

Summary

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.

Enter your response below:

Reliable packages

Any alternatives?

We could go out of our way to be more backward compatible, but considering the numerous third party dependencies this might be very difficult.

Other examples:

No response

Broken ide- packages due to "call.getFileName is not a function"

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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]

Which OS does this happen on?

🍎 macOS

OS details

12.6.1

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Have one of the following packages installed:

  • ide-python
  • atom-ide-javascript
  • atom-ide-debugger

the error appears on opening Pulsar and again on opening a new window.

Additional Information:

No response

Bump Electron to 19

Have you checked for existing feature requests?

  • Completed

Modifications

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.

Summary

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:

  • Either port Superstring to NAPI (work in progress here: pulsar-edit/superstring#2) or implement WASM feature that are missing (work in progress here: https://github.com/pulsar-edit/superstring-wasm)
  • With superstring compiled to WASM, Autocomplete works but I can't actually SELECT the suggestion with TAB or ENTER. Not sure if it's because of something WASM-related or some breaking change on Electron, needs to investigate
  • With WASM, we're not being able to open files (again, because of the missing APIs). We need to fix this
  • With WASM, we can save files but they don't appear as modified or saved (missing APIs on superstring)
  • Bump TextBuffer to use the newer version of Superstring (either with N-API or with WASM)
  • Tree sitter also doesn't work. There, again is some work on porting tree-sitter to N-API but the problem is that all grammars also need to be ported or become context-aware. Maybe a better idea is to just rewrite all of tree-sitter stuff to either use WASM or to simply move to a different implementation
  • If we disable tree-sitter for now, we'll need to disable to all packages too, because they open a big red warning about context-aware functions on Pulsar when we boot (even if we DO NOT use them)
  • Pathwatcher is also failing. There is a new version that is able to use Pulsar's "watch API" instead, but we need more tests to see if it's working
  • Fuzzy-finder is also broken because the API is not context-aware. I removed binary dependencies and drafted a PR to at least make it work on Electron 19
  • Git-utils is also broken. This may be a non-issue if we make it context-aware, but it's a good idea to see if we can move git-utils to Isomorphic GIT (a pure JS implementation) and just add a breaking change that the API for atom.repository will become async
  • Need to update PPM (and see if its dependencies will also be broken)
  • Test the editor, fix tests, etc

Enter your response below:

Ability to keep bumping Electron versions

Any alternatives?

None that I know of

Other examples:

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 requires are synchronous.

Disabling or enabling packages and restarting the editor reverts the state

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.

Creating a file doesn't make the editor watch it

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

Just what it says on the title

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

20.04

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

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

Additional Information:

No response

Dev tools don't open without `--no-sandbox`

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Linux Mint 21 (but also on Fedora 36)

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Launch Pulsar with no additional parameters from dev, appimage or tar.gz binary.
  2. Attempt to open dev tools

Additional Information:

Built from 3646a71

Hydrogen failing to install

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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

Which OS does this happen on?

🐧 Red Hat based (Fedora, Alma, RockyLinux, CentOS Stream, etc.)

OS details

fedora 37

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. download pulsar-1.63.2022112700.x86_64
  2. in konsol: sudo yum install pulsar-1.63.2022112700.x86_64
  3. open pulsar --> navigate to install packages
  4. find hydrogen package and click install

Additional Information:

No response

Proper path integration for all OS binaries

Have you checked for existing feature requests?

  • Completed

Summary

Commands missing from path

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.

How to fix it?

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.

Enter your response below:

Seamless integration of the pulsar and ppm commands without needing to manually add Pulsar to the path.

Any alternatives?

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.

Other examples:

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.

Crash on startup on virtualbox/rocky9

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

Crash on startup on virtualbox rocky 9

Version used:
pulsar-1.63.2022111616.x86_64.rpm

Which OS does this happen on?

🐧 Red Hat based (Fedora, Alma, RockyLinux, CentOS Stream, etc.)

OS details

rocky9

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

Just run the program in a virtualbox with rocky9

Additional Information:

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.

Cannot install packages on macOS (Intel)

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

image

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)

Which OS does this happen on?

🍎 macOS

OS details

macOS 11.5.2 20G95 x86_64

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Open "Install Packages"
  2. Wait and observer error under "Featured Packages"
  3. Search for "clock"
  4. Attempt to install "atom-clock" (although same will happen with any package)
  5. Observe same error as before.

Additional Information:

Cirrus binary https://cirrus-ci.com/task/6482747400126464
Commit 2d37d3d

Pulsar (Nor Atom) Appear in Windows 11 Right Click Menu for Files and Folders

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

image

Which OS does this happen on?

🪟 Windows

OS details

Windows 11 & Windows 10

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Find file or Folder in Windows Explorer
  2. Right Click Item
  3. Fail to find "Open With Pulsar" in the initial Right Click Menu.

Additional Information:

No response

Fix `update-manager-spec.js` Tests

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.

Strange "half screen" error in editor

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.
gifgit

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Linux Mint 20.3

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

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).

Additional Information:

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.

Discord conversation.

Console logs checked but nothing of relevance.

HTML of the editor pane attached.
bug_html.txt

Generate a AUR, snap, and flatpak package

Summary

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.

Motivation

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.

[Very Minor] No Icon in Window List

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

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.

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Linux Mint 1 (Cinnamon 5.4.12)

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. Install from latest .deb
  2. Run the app

Additional Information:

No response

Fix README and other documentation

Prerequisites

Description

I still see "Atom" mentions in different places.

Steps to Reproduce

Read the README, click some links.

Expected behavior:

Everything is about "Pulsar".

Actual behavior:

image

image

How often does this happen:

100%

Versions

Current.

`GPU process isn't usable. Goodbye.` issue on start

Thanks in advance for your bug report!

  • Have you reproduced issue in safe mode?
  • Have you used the debugging guide to try to resolve the issue?
  • Have you checked our FAQs to make sure your question isn't answered there?
  • Does your issue already exist?
  • Have you checked you are on the latest release of Pulsar?

What happened?

$ /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

Which OS does this happen on?

🐧 Debian based (Linux Mint, Ubuntu, etc.)

OS details

Ubuntu 22.04

Which CPU architecture are you running this on?

64-bit(x86_64)

What steps are needed to reproduce this?

  1. use .deb or .appimage package
  2. start app

Additional Information:

same as
agalwood/Motrix#1158
picturama/picturama#116
and many other Electron-based apps.

[Fork & Maintenance Request] double-tag, autoclose-html-plus, emmet

Have you checked for existing feature requests?

  • Completed

Summary

The packages to speed up the workflow of web development and improve the convenience on completing HTML tags.

Enter your response below:

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.

Any alternatives?

  1. double-tag by dsandstrom

  2. autoclose-html-plus by binaryfunt

  3. emmet by emmetio

Other examples:

No response

Azure Pipelines

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.