Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not display on Atom 208 #10

Closed
JohnMurga opened this issue Jun 10, 2015 · 8 comments
Closed

Does not display on Atom 208 #10

JohnMurga opened this issue Jun 10, 2015 · 8 comments

Comments

@JohnMurga
Copy link
Contributor

Other similar packages have the same issue with 208

@cmtonkinson
Copy link
Member

Duplicate of #8

@JohnMurga
Copy link
Contributor Author

Not really ...
But I guess the net effect is similar : atom/atom#7204
I raised the issue on Atom also as it affects a few packages on 208 (while 207 is fine)

@cmtonkinson
Copy link
Member

@JohnMurga looks like you're right, these are distinct-but-related changes that happened in quick succession.

@cmtonkinson cmtonkinson reopened this Jun 10, 2015
@cmtonkinson
Copy link
Member

Going to investigate using Markers instead of relying on manipulating layers in the editor directly.

@JohnMurga
Copy link
Contributor Author

I got a response that may be useful ...
atom/atom#7204 (comment)

cmtonkinson added a commit that referenced this issue Jun 11, 2015
@cmtonkinson
Copy link
Member

Good call, @JohnMurga. Inserting into the shadowRoot gets it closer, but still having issues. First, the ruler gets thrown off horizontally by e.g. having line numbers enabled, and second, when the ruler is positioned correctly, it overlays the cursor so you don't see the blink effect.

Opacity could be a solution to the latter but it's probably not worth thinking too hard about before we figure out if adding a custom element to the shadowRoot is even the right way to move forward. Considered using Markers instead of "manual" DOM manipulation - thoughts anyone?

@cmtonkinson
Copy link
Member

Another idea entirely is to replace all of the JS code with a pure-CSS solution. The following is a rough draft:

atom-text-editor.is-focused::shadow {
  .cursors {
    .cursor::before {
      content: " ";
      display: block;
      height: 100%;
      width: 1px;
      transform: translateX(-0px) scaleY(1000);
      border-left: 1px solid @text-color-subtle;
      overflow: hidden;
    }
  }
}

Two problems with this approach though:

  1. The ruler blinks with the cursor (and since .cursors.blink-off uses opacity instead of rgba, I don't see a clean way around this)
  2. Using translateX(-1px) to align the ruler perfectly with the cusor, hides the cursor (even when setting a negative z-index to try to force the ruler "behind" the cursor)

@cmtonkinson
Copy link
Member

Instead of appending the Element to the old underlayer, it is now appended to the .lines div within the ShadowRoot of the editor. If this isn't best practice, someone holler - this editor moves too damn fast for me to keep up with standards sometimes, especially in the face of all this 1.0 deprecation ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants