Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Emmet package #616

Closed
cobyism opened this issue Jul 5, 2013 · 15 comments
Closed

Emmet package #616

cobyism opened this issue Jul 5, 2013 · 15 comments

Comments

@cobyism
Copy link
Contributor

cobyism commented Jul 5, 2013

Emmet (formerly known as "zen coding") is a plugin for text editors working with HTML and CSS. It’s fucking awesome and it there should be a package for Atom.

There are versions of it written for just about everything—including:

I’ve been using Atom for so long now that I’d forgotten how much I depended on this plugin when I used to use Sublime. I saw that there is a repo for converting .tmbundles to npm packages, but the textmate version of emmet is a .tmplugin so I figured that probably wasn’t going to happen.

Basically I have no idea myself how to go about writing an Emmet package for Atom, but it needs to happen, and I think this would be a pretty important package to be able to launch with (and possibly include with Atom by default?). There’s so many existing implementations of it, and all of them are open source, so I figure it shouldn’t be too hard to hijack code from one of them for Atom.

How can we make this be a thing?

/cc @gjtorikian because I remember him mentioning something about a version of this for Ace? That should also be something we let people have when editing HTML via dotcom’s Ace, by the way.

@kevinsawicki
Copy link
Contributor

This sounds 🆒 2️⃣ me, @mdo was asking about this too the other day.

@gjtorikian
Copy link
Contributor

That's some impressive memory you've got there!

I actually implemented a homebrew solution for Ace; another colleague did end up implementing Emmet.

I'd love to do this, just to learn how to do Atom packages via apm, so I can document that cycle better. I wonder if this would go through apm, or just be embedded into the editor--sounds like @kevinsawicki is fine with the latter? That's not a firm commitment, but I'll mess with it for sure.

@cobyism
Copy link
Contributor Author

cobyism commented Jul 11, 2013

@gjtorikian Cool. Yeah if you’re keen on this too then I’d love to work on it with you so that I can learn about how building packages works too. I knew we had a package system for Atom, but I didn’t realise it was called apm. What’s the best way forward? Do we just create a repo for this package under the Atom org? I haven’t read through the docs for packages yet, so I guess that’s the first step for me 😄

@gjtorikian
Copy link
Contributor

Reading the docs would be a huge help, for me, since I haven't touched them
in a few months and it'd be good to get some feedback. 😄 There is an
entire tutorial on building your first Atom package that goes over many
aspects like working with keybindings and adding dependencies.

Yeah, apm is the name of the Aton package manager, which is responsible
for publishing and retrieving packages; it's automatically installed with
Atom. Most definitely, I think starting a private repo under the Atom org
would be a good first action. One day we may even want to transfer it under
the Emmet org--that's where Textmate, Sublime, Brackets, and others have
theirs.

That said I took a look at this last night and it's crazy easy to do. I
guess there's a lot of user overrides Emmet allows for, but the basic
implementation should not be difficult at all. We can either pair on this
over the next few weeks, or just dedicate some time during Summit to go
over the package creation--I'm pretty confident this can be done within the
week. The choice is yours!
On Jul 11, 2013 2:16 AM, "Coby Chapple" notifications@github.com wrote:

@gjtorikian https://github.com/gjtorikian Cool. Yeah if you’re keen on
this too then I’d love to work on it with you so that I can learn about how
building packages works too. I knew we had a package system for Atom, but I
didn’t realise it was called apm. What’s the best way forward? Do we just
create a repo for this package under the Atom org? I haven’t read through the
docs for packageshttps://github.com/github/atom/tree/master/docs/packagesyet, so I guess that’s the first step for me [image:
😄]


Reply to this email directly or view it on GitHubhttps://github.com//issues/616#issuecomment-20799328
.

@gjtorikian
Copy link
Contributor

Started it: https://github.com/atom/emmet

It's slightly more complicated to do all the keyboard overrides, especially because Atom apparently already "takes over" quite a few keybindings that Emmet expects.

When #651 gets merged in I'll apm publish this and will gladly take feedback on what works / doesn't work. Right now all it does is expand the abbreviations:

emmet

...and you'll notice, not even very well!

It'll take awhile to 100% mimic Emmet because you have to rewrite some of the mappings to fit into Atom, but it's not at all impossible or even demanding, just a bit time-consuming. 😉

@gjtorikian
Copy link
Contributor

Should this be closed out? Emmet support is straight up done: https://github.com/atom/emmet

There's like four or five things that aren't working, because they depend on pop-up dialogs. It seems like there's no easy way to get at this at the moment.

@kevinsawicki How complete is apm support? I tried apm publish and it spat out some HTTP messages. But I couldn't see the package in apm list or the "Available Packages" pane in Atom.

@gjtorikian
Copy link
Contributor

Ah, wow, disregard what I said.

apm list only lists local packages.

It'd be great to have support for apm unpublish or apm publish --force--my 0.0.1 has some typos in the README and I don't want to bump a new release just for those fixes!

@kevinsawicki
Copy link
Contributor

Yeah, apm support is incremental, as we need a command we add it.

apm available lists all packages available from the registry.

@jbarnette
Copy link
Contributor

As someone who did his time as a RubyGems maintainer, don't build the
ability to republish versions in. It makes depending on other libraries
impossible. You're not gonna run out of version numbers.

RubyGems provides an optional yank command, which is a decent
after-the-fact solution. I'd rather just be able to tag releases as bad via
the registry and have them skipped when listing, displaying info, or
satisfying dependencies. This also makes a check command possible, which
could show you both out-of-date packages and packages in the registry
that have been marked as bad. Things get even more fun if you build in the
ability to tag package releases with vulns and have your package manager
warn you if you're using them. Unless, say, --include-all-releases is
passed.

Package managers are fun.

On Fri, Jul 26, 2013 at 8:17 AM, Kevin Sawicki notifications@github.comwrote:

Yeah, apm support is incremental, as we need a command we add it.

apm available lists all packages available from the registry.


Reply to this email directly or view it on GitHubhttps://github.com//issues/616#issuecomment-21627258
.

@nathansobo
Copy link
Contributor

@jbarnette 💯 👍 on board with those suggestions.

@gjtorikian
Copy link
Contributor

I admit I force publish pretty frequently on NPM, because I always forget to update the README or a package.json keyword or something.

It'd be nice if apm had like a bump command that just:

  1. Updated the minor semver number
  2. Pushed to master
  3. Pushed to APM registry

This is just my zany workflow though.

@jbarnette
Copy link
Contributor

Seems like that can be pretty easily automated outside of the tool itself.

On Fri, Jul 26, 2013 at 10:19 AM, Garen Torikian
notifications@github.comwrote:

I admit I force publish pretty frequently on NPM, because I always forget
to update the README or a package.json keyword or something.

It'd be nice if apm had like a bump command that just:

  1. Updated the minor semver number
  2. Pushed to master
  3. Pushed to APM registry

This is just my zany workflow though.


Reply to this email directly or view it on GitHubhttps://github.com//issues/616#issuecomment-21635074
.

@mcolyer
Copy link
Contributor

mcolyer commented Sep 30, 2013

@cobyism mind if we close this out? It looks like atom/emmet is off to a pretty good start here.

@cobyism cobyism closed this as completed Sep 30, 2013
@cobyism
Copy link
Contributor Author

cobyism commented Sep 30, 2013

@mcolyer 👍 😀

@lock
Copy link

lock bot commented Jan 27, 2019

This issue has been automatically locked since there has not been any recent activity after it was closed. If you can still reproduce this issue in Safe Mode then please open a new issue and fill out the entire issue template to ensure that we have enough information to address your issue. Thanks!

@lock lock bot locked as resolved and limited conversation to collaborators Jan 27, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants