HTML Preparation code:
x
 
1
<html prefix="og: http://ogp.me/ns#"><head>
2
  <meta charset="UTF-8">
3
<script src="https://js-agent.newrelic.com/nr-974.min.js"></script><script async="" src="//www.google-analytics.com/analytics.js"></script><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"844a840367","applicationID":"13323906","transactionName":"c1cMREAKXVRcRhpFUlNTA1dXFh5LUVtC","queueTime":40,"applicationTime":47,"agent":""}</script>
4
<script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(){}function o(t,e,n){return function(){return i(t,[(new Date).getTime()].concat(u(arguments)),e?null:this,n),e?void 0:this}}var i=t("handle"),a=t(2),u=t(3),c=t("ee").get("tracer"),f=NREUM;"undefined"==typeof window.newrelic&&(newrelic=f);var s=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit"],p="api-",l=p+"ixn-";a(s,function(t,e){f[e]=o(p+e,!0,"api")}),f.addPageAction=o(p+"addPageAction",!0),e.exports=newrelic,f.interaction=function(){return(new r).get()};var d=r.prototype={createTracer:function(t,e){var n={},r=this,o="function"==typeof e;return i(l+"tracer",[Date.now(),t,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[Date.now(),r,o],n),o)try{return e.apply(this,arguments)}finally{c.emit("fn-end",[Date.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){d[e]=o(l+e)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,(new Date).getTime()])}},{}],2:[function(t,e,n){function r(t,e){var n=[],r="",i=0;for(r in t)o.call(t,r)&&(n[i]=e(r,t[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],3:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(o<0?0:o);++r<o;)i[r]=t[e+r];return i}e.exports=r},{}],ee:[function(t,e,n){function r(){}function o(t){function e(t){return t&&t instanceof r?t:t?u(t,a,i):i()}function n(n,r,o){t&&t(n,r,o);for(var i=e(o),a=l(n),u=a.length,c=0;c<u;c++)a[c].apply(i,r);var s=f[m[n]];return s&&s.push([w,n,r,i]),i}function p(t,e){g[t]=l(t).concat(e)}function l(t){return g[t]||[]}function d(t){return s[t]=s[t]||o(n)}function v(t,e){c(t,function(t,n){e=e||"feature",m[n]=e,e in f||(f[e]=[])})}var g={},m={},w={on:p,emit:n,get:d,listeners:l,context:e,buffer:v};return w}function i(){return new r}var a="nr@context",u=t("gos"),c=t(2),f={},s={},p=e.exports=o();p.backlog=f},{}],gos:[function(t,e,n){function r(t,e,n){if(o.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[e]=r,r}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){o.buffer([t],r),o.emit(t,e,n)}var o=t("ee").get("handle");e.exports=r,r.ee=o},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!h++){var t=y.info=NREUM.info,e=s.getElementsByTagName("script")[0];if(t&&t.licenseKey&&t.applicationID&&e){c(m,function(e,n){t[e]||(t[e]=n)});var n="https"===g.split(":")[0]||t.sslForHttp;y.proto=n?"https://":"http://",u("mark",["onload",a()],null,"api");var r=s.createElement("script");r.src=y.proto+t.agent,e.parentNode.insertBefore(r,e)}}}function o(){"complete"===s.readyState&&i()}function i(){u("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var u=t("handle"),c=t(2),f=window,s=f.document,p="addEventListener",l="attachEvent",d=f.XMLHttpRequest,v=d&&d.prototype;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:d,REQ:f.Request,EV:f.Event,PR:f.Promise,MO:f.MutationObserver},t(1);var g=""+location,m={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-974.min.js"},w=d&&v&&v[p]&&!/CriOS/.test(navigator.userAgent),y=e.exports={offset:a(),origin:g,features:{},xhrWrappable:w};s[p]?(s[p]("DOMContentLoaded",i,!1),f[p]("load",r,!1)):(s[l]("onreadystatechange",o),f[l]("onload",r)),u("mark",["firstbyte",a()],null,"api");var h=0},{}]},{},["loader"]);</script>
5
  <title>project-manager</title>
6
  <link rel="stylesheet" media="all" href="https://github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/application-ba07c5c2889a34307a4b7d49410451d9.css" data-turbolinks-track="true">
7
  <script src="https://github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/application-3db62b578ebfc39ee871abc91b175302.js" data-turbolinks-track="true"></script>
8
  <meta name="csrf-param" content="authenticity_token">
9
<meta name="csrf-token" content="AXBSBYtFNzpFrPZ6KTxP1EaYvy+M9SNIjjb8FG+IwZPcT+N6XQiWZ682Ag3IqRcnHh4lanQa+scCltO/uIGN2A==">
10
  <script>
11
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
12
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
13
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
14
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
15
16
  ga('create', 'UA-3769691-35', 'atom.io');
17
  ga('send', 'pageview');
18
19
</script>
20
21
  <meta property="og:url" content="https://atom.io/packages/project-manager">
22
<meta property="og:site_name" content="Atom">
23
<meta property="og:title" content="project-manager">
24
<meta property="og:description" content="Project Manager for easy access and switching between projects in Atom.">
25
<meta property="og:type" content="website">
26
<meta property="og:author" content="https://github.com/danielbrodin">
27
  <meta property="og:image" content="https://travis-ci.org/danielbrodin/atom-project-manager.svg?branch=master">
28
29
  <meta property="twitter:card" content="summary_large_image">
30
<meta property="twitter:site" content="@AtomEditor">
31
<meta property="twitter:creator" content="https://github.com/danielbrodin">
32
<meta property="twitter:title" content="project-manager">
33
<meta property="twitter:description" content="Project Manager for easy access and switching between projects in Atom.">
34
  <meta property="twitter:image:src" content="https://travis-ci.org/danielbrodin/atom-project-manager.svg?branch=master">
35
36
  <meta name="description" content="At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config file. We can’t wait to see what you build with it.">
37
38
39
  <link rel="shortcut icon" href="/favicon.ico">
40
  <link rel="alternate" type="application/atom+xml" title="Atom Packages and Themes" href="https://atom.io/packages.atom">
41
</head>
42
<body data-luckynumber="19293882828282">
43
  
44
45
  <div class="footer-push">
46
    <div class="top-bar">
47
  <div class="wrapper no-pad">
48
49
    <ul class="navigation">
50
      <li><h1 title="Atom: A hackable text editor for the 21st Century"><a href="/" class="logo-small"></a></h1></li>
51
      <li><a class="is-selected" href="/packages">Packages</a></li>
52
      <li><a class="" href="/themes">Themes</a></li>
53
      <li><a class="" href="/docs">Documentation</a></li>
54
      <li><a href="http://blog.atom.io">Blog</a></li>
55
      <li><a href="http://discuss.atom.io">Discuss</a></li>
56
    </ul>
57
58
    <div class="top-bar-right">
59
        <a href="/login?last_url=%2Fpackages%2Fproject-manager">
60
          <span class="octicon octicon-log-in"></span> Sign in
61
        </a>
62
    </div>
63
  </div>
64
</div>
65
66
67
    <div id="js-pjax-container">
68
      
69
<div class="wrapper package-show content-push">
70
71
72
  <div>
73
    <div class="grid-cell">
74
  <div class="package-card card">
75
76
      <div class="body css-truncate">
77
        <h4 class="card-name">
78
          <span class="css-truncate-target"><a href="/packages/project-manager">project-manager</a></span>
79
        </h4>
80
        <span class="css-truncate-target card-description">Project Manager for easy access and switching between projects in Atom.</span>
81
82
        <ul class="keywords">
83
              <li><a href="/packages/search?utf8=✓&amp;q=keyword:project">#project</a></li>
84
              <li><a href="/packages/search?utf8=✓&amp;q=keyword:manager">#manager</a></li>
85
              <li><a href="/packages/search?utf8=✓&amp;q=keyword:settings">#settings</a></li>
86
              <li><a href="/packages/search?utf8=✓&amp;q=keyword:workflow">#workflow</a></li>
87
              <li><a href="/packages/search?utf8=✓&amp;q=keyword:productivity">#productivity</a></li>
88
        </ul>
89
90
      </div>
91
92
    <div class="meta">
93
94
        <a href="/users/danielbrodin">
95
          <img src="https://github.com/danielbrodin.png" alt="danielbrodin" class="gravatar">
96
        </a>
97
        <a href="/users/danielbrodin" class="author">
98
          danielbrodin
99
        </a>
100
101
        <div class="meta-right">
102
          <a class="linked-octicon" href="https://github.com/danielbrodin/atom-project-manager/releases/tag/v2.9.7">
103
            <span class="stat tooltipped tooltipped-n" aria-label="Latest version">
104
              <span class="octicon octicon-versions"></span> <span class="value">2.9.7</span>
105
            </span>
106
          </a>
107
          <span class="stat tooltipped tooltipped-n" aria-label="Downloads">
108
            <span class="octicon octicon-cloud-download"></span> <span class="value">424,500</span>
109
          </span>
110
      
111
        <span class="js-star-wrap">
112
          <div class="star-box tooltipped tooltipped-nw" aria-label="You must be signed in to star packages">
113
  <a href="/packages/project-manager/star" class="js-star-button star-button minibutton with-count disabled " data-skip-pjax="">
114
    <span class="octicon octicon-star"></span>
115
  </a>
116
  <a class="social-count" href="/packages/project-manager/stargazers">
117
    1563
118
  </a>
119
</div>
120
121
        </span>
122
      </div> <!-- meta-right -->
123
    </div> <!-- meta -->
124
  </div>
125
</div>
126
127
128
129
      <div class="package-meta">
130
        <ul>
131
          <li><a href="https://github.com/danielbrodin/atom-project-manager"><span class="octicon octicon-repo"></span> Repo</a></li>
132
          <li><a href="https://github.com/danielbrodin/atom-project-manager/issues"><span class="octicon octicon-bug"></span> Bugs</a></li>
133
          <li><a href="https://github.com/danielbrodin/atom-project-manager/releases"><span class="octicon octicon-versions"></span> Versions</a></li>
134
          <li>
135
              <a href="https://github.com/danielbrodin/atom-project-manager/blob/faa5a97edfb01d1a501b8f7ef9100dbabbb5dcac/LICENSE.md"><span class="octicon octicon-law"></span> License</a>
136
          </li>
137
        </ul>
138
139
        <a href="#flag-modal" class="js-show-flag show-flag"><span class="octicon octicon-circle-slash"></span> Flag as spam or malicious</a>
140
      </div>
141
  </div>
142
143
144
    <div class="markdown-body readme">
145
        <h1>
146
<a href="#project-manager"></a>Project Manager</h1>
147
148
<p><a href="https://travis-ci.org/danielbrodin/atom-project-manager/"><img src="https://i.github-camo.com/dc09fd5c511c34857268a706483390c9bb221431/68747470733a2f2f7472617669732d63692e6f72672f64616e69656c62726f64696e2f61746f6d2d70726f6a6563742d6d616e616765722e7376673f6272616e63683d6d6173746572" alt="Build status" data-canonical-src="https://travis-ci.org/danielbrodin/atom-project-manager.svg?branch=master"></a>
149
<a href="https://atom.io/packages/project-manager"><img src="https://i.github-camo.com/2fc372771b24599f2ba3aa124f19cb36b645798b/68747470733a2f2f696d672e736869656c64732e696f2f61706d2f646d2f70726f6a6563742d6d616e616765722e737667" alt="apm" data-canonical-src="https://img.shields.io/apm/dm/project-manager.svg"></a>
150
<a href="https://github.com/danielbrodin/atom-project-manager/blob/v2.9.7/"><img src="https://i.github-camo.com/0b30b32aeacda6a25922fa8d90220b8531f70ff9/68747470733a2f2f696d672e736869656c64732e696f2f61706d2f762f70726f6a6563742d6d616e616765722e737667" alt="apm" data-canonical-src="https://img.shields.io/apm/v/project-manager.svg"></a></p>
151
152
<p><img src="https://i.github-camo.com/9f58c50dd32d6173bb555f1a0ca08c713d8a2f2a/68747470733a2f2f7261772e6769746875622e636f6d2f64616e69656c62726f64696e2f61746f6d2d70726f6a6563742d6d616e616765722f6d61737465722f70726f6a6563742d6d616e616765722e676966" alt="Project Manager" data-canonical-src="https://raw.github.com/danielbrodin/atom-project-manager/master/project-manager.gif"></p>
153
154
<p>Get easy access to all your projects and manage them with project specific settings and options.</p>
155
156
<h2>
157
<a href="#install"></a>Install</h2>
158
159
<pre><code>$&nbsp;apm install project-manager
160
</code></pre>
161
162
<p>or open Atom and go to Preferences &gt; Install and search for <code>project-manager</code></p>
163
164
<h2>
165
<a href="#use"></a>Use</h2>
166
167
<h3>
168
<a href="#list-projects"></a>List Projects</h3>
169
170
<p><code>ctrl-cmd-p</code> (mac) / <code>alt-shift-P</code> (win &amp; linux) or <code>Project Manager: List Projects</code> in the Command Palette.</p>
171
172
<p>You can filter projects by <code>title</code>, <code>group</code> and <code>template</code>.
173
<code>group: atom</code> would list all projects with the group <code>atom</code>. Default is <code>title</code></p>
174
175
<h3>
176
<a href="#save-project"></a>Save Project</h3>
177
178
<p><code>Project Manager: Save Project</code> in the Command Palette and write the title you want to save the project as.</p>
179
180
<h3>
181
<a href="#edit-projects"></a>Edit Projects</h3>
182
183
<p>All projects are saved in a <code>.cson</code> file which you can easily reach by searching for <code>Project Manager: Edit Projects</code> in the Command Palette.</p>
184
185
<h2>
186
<a href="#project-settings"></a>Project Settings</h2>
187
188
<table>
189
<thead>
190
<tr>
191
<th>setting</th>
192
<th>Type</th>
193
<th>Description</th>
194
<th>Default</th>
195
</tr>
196
</thead>
197
<tbody>
198
<tr>
199
<td><code>title</code></td>
200
<td><code>string</code></td>
201
<td>Projects title. Used in the projects list</td>
202
<td><code>''</code></td>
203
</tr>
204
<tr>
205
<td><code>paths</code></td>
206
<td><code>array</code></td>
207
<td>The folders that will open in the tree view. First path is the main one that counts as the project.</td>
208
<td><code>[]</code></td>
209
</tr>
210
<tr>
211
<td><code>settings</code></td>
212
<td><code>Object</code></td>
213
<td>Enables you to set project specific settings. Everything that goes in the <code>config.cson</code> file can go here. It also supports scoped settings.</td>
214
<td><code>{}</code></td>
215
</tr>
216
<tr>
217
<td><code>icon</code></td>
218
<td><code>string</code></td>
219
<td>Icon that shows in the projects list. It's class-based so can either be a class already provided by Atom like <code>icon-squirell</code> or a class of your own.</td>
220
<td><code>'icon-chevron-right'</code></td>
221
</tr>
222
<tr>
223
<td><code>devMode</code></td>
224
<td><code>boolean</code></td>
225
<td>
226
<code>true</code> if project should open in dev mode</td>
227
<td><code>false</code></td>
228
</tr>
229
<tr>
230
<td><code>group</code></td>
231
<td><code>string</code></td>
232
<td>Adds a group to the projects list that can be used to group and filter projects</td>
233
<td><code>null</code></td>
234
</tr>
235
<tr>
236
<td><code>template</code></td>
237
<td><code>string</code></td>
238
<td>If you add a project in the <code>projects.cson</code> file without <code>paths</code> it will count as a template. This way you can easily share settings between projects</td>
239
<td><code>null</code></td>
240
</tr>
241
</tbody>
242
</table>
243
244
<h3>
245
<a href="#local-settings-file"></a>Local settings file</h3>
246
247
<p>All these settings can be added to a <code>project.cson</code> file in the root folder of the project. It follows the below example, but without the project key.</p>
248
249
<h3>
250
<a href="#example"></a>Example</h3>
251
252
<pre><code>projectmanager:
253
  title: 'Project Manager'
254
  devMode: true
255
  group: 'Atom'
256
  template: 'coffeescript-template'
257
  paths: [
258
    '/path/to/project-manager'
259
  ]
260
  settings:
261
    '*':
262
      'editor.tabLength': 4
263
264
'coffeescript-template':
265
  icon: 'icon-coffeescript'
266
  settings:
267
    '.source.coffee':
268
      'editor.tabLength': 2
269
      'editor.preferredLineLength': 80
270
</code></pre>
271
272
<h2>
273
<a href="#package-settings"></a>Package Settings</h2>
274
275
<table>
276
<thead>
277
<tr>
278
<th>Name</th>
279
<th>Setting</th>
280
<th>Default</th>
281
<th>Description</th>
282
</tr>
283
</thead>
284
<tbody>
285
<tr>
286
<td>Show Path</td>
287
<td><code>project-manager.showPath</code></td>
288
<td><code>true</code></td>
289
<td>Shows each projects paths in the projects list</td>
290
</tr>
291
<tr>
292
<td>Environment Specific Projects</td>
293
<td><code>project-manager.environmentSpecificProjects</code></td>
294
<td><code>false</code></td>
295
<td>If you share your <code>.atom</code> folder between computers but don't use the same projects. Will create a <code>projects.[hostname].cson</code> for each environment</td>
296
</tr>
297
<tr>
298
<td>Sort By</td>
299
<td><code>project-manager.sortBy</code></td>
300
<td><code>'default'</code></td>
301
<td>Will sort the projects list by selected option. Default sorting is the order in which the are</td>
302
</tr>
303
<tr>
304
<td>Close Current</td>
305
<td><code>project-manager.closeCurrent</code></td>
306
<td><code>false</code></td>
307
<td>Closes the current window before opening a new project.</td>
308
</tr>
309
</tbody>
310
</table>
311
312
<h2>
313
<a href="#api"></a>API</h2>
314
315
<p>The project manager provides a service that you can use in your own Atom packages. To use it, include <code>project-manager</code> in the <code>consumedServices</code> section of your package.json.</p>
316
317
<pre><code>"consumedServices": {
318
    "project-manager": {
319
      "versions": {
320
        "^2.2.1": "consumeProjectManager"
321
      }
322
    }
323
  }
324
</code></pre>
325
326
<p>Then in your package's main module, call methods on the service</p>
327
328
<pre><code>module.exports =
329
  doSomethingWithTheCurrentProject: (project) -&gt;
330
331
  consumeProjectManager: (PM) -&gt;
332
    PM.projects.getCurrent (project) =&gt;
333
      if project
334
        @doSomethingWithTheCurrentProject(project)
335
</code></pre>
336
337
<h3>
338
<a href="#methods"></a>Methods</h3>
339
340
<h4>
341
<a href="#projects"></a><code>{Projects}</code>
342
</h4>
343
344
<ul>
345
<li>
346
<code>::getAll</code>
347
348
<ul>
349
<li>
350
<code>{Function} callback</code> - Callback that receives an <code>Array</code> of <code>{Project}</code>'s</li>
351
</ul>
352
</li>
353
<li>
354
<code>::getCurrent</code>
355
356
<ul>
357
<li>
358
<code>{Function} callback</code> - Callback that receives the current <code>{Project}</code> or <code>false</code> if there is none active</li>
359
</ul>
360
</li>
361
<li>
362
<code>::onUpdate</code>
363
364
<ul>
365
<li>
366
<code>{Function} callback</code> - Will be called each time a project have been updated</li>
367
</ul>
368
</li>
369
</ul>
370
371
<h4>
372
<a href="#project"></a><code>{Project}</code>
373
</h4>
374
375
<ul>
376
<li>
377
<code>{props}</code> - Contains all properties of the project like <code>title</code>, <code>paths</code> and <code>settings</code>
378
</li>
379
<li>
380
<code>::open</code> - Will open the project</li>
381
<li>
382
<code>::isCurrent</code> - Returns <code>true</code> if it's the current project</li>
383
<li>
384
<code>::onUpdate</code>
385
386
<ul>
387
<li>
388
<code>{Function} callback</code> - Will be called when the project have been updated</li>
389
</ul>
390
</li>
391
<li>
392
<code>::set</code> - Will set the property on the project
393
394
<ul>
395
<li><code>{String} key</code></li>
396
<li><code>{Mixed} value</code></li>
397
</ul>
398
</li>
399
<li>
400
<code>::unset</code> - Will remove the property from the project
401
402
<ul>
403
<li><code>{String} key</code></li>
404
</ul>
405
</li>
406
</ul>
407
408
<p>Please let me know if you make something out of it :)</p>
409
410
<h2>
411
<a href="#contribute"></a>Contribute</h2>
412
413
<p>If you would like to contribute to the project manager, be it new features or bugs,
414
please do the following:</p>
415
416
<ol>
417
<li>Fork the repository</li>
418
<li>Create a new topic branch off the master branch that describe what it does</li>
419
<li>Commit and push the branch</li>
420
<li>Make a pull request describing what you have done</li>
421
<li>Now it will hopefully get merged :)</li>
422
</ol>
423
424
<p>All PR's should:</p>
425
426
<ul>
427
<li>Pass the <a href="https://atom.io/packages/linter-jscs">jscs</a> linter</li>
428
<li>Pass the <a href="https://atom.io/packages/linter-jshint">jshint</a> linter</li>
429
<li>Add a test when it makes sense, which should be most of the time</li>
430
</ul>
431
432
<hr>
433
434
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=DR4XQWAZV6M2A&amp;lc=SE&amp;item_name=Project%20Manager&amp;item_number=atom%2dproject%2dmanager&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted"><img src="https://i.github-camo.com/e14c85b542e06215f7e56c0763333ef1e9b9f9b7/68747470733a2f2f7777772e70617970616c6f626a656374732e636f6d2f656e5f55532f692f62746e2f62746e5f646f6e6174655f534d2e676966" alt="Paypal Donations" data-canonical-src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"></a> a <img title=":beer:" alt=":beer:" src="https://i.github-camo.com/07079713c7cff0474267d22ecd1becc613970e6d/68747470733a2f2f613234382e652e616b616d61692e6e65742f6173736574732e6769746875622e636f6d2f696d616765732f69636f6e732f656d6f6a692f756e69636f64652f31663337612e706e67" height="20" width="20" align="absmiddle" data-canonical-src="https://a248.e.akamai.net/assets.github.com/images/icons/emoji/unicode/1f37a.png"> if you enjoy using the <a href="https://github.com/danielbrodin/atom-project-manager">project manager</a> :)</p>
435
    </div>
436
437
</div>
438
439
<div id="flag-modal" style="display:none">
440
  <h2>
441
    I think this package is bad news.
442
  </h2>
443
444
  <p>
445
    Good catch. Let us know what about this package looks wrong to you, and we'll
446
    investigate right away.
447
  </p>
448
449
  <form action="/packages/project-manager/flag" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="AXBSBYtFNzpFrPZ6KTxP1EaYvy+M9SNIjjb8FG+IwZPcT+N6XQiWZ682Ag3IqRcnHh4lanQa+scCltO/uIGN2A==">
450
    <textarea rows="5" name="flag[message]" id="flag_message"></textarea>
451
    <input type="submit" name="commit" value="Flag project-manager" class="button primary flag-button">
452
</form></div>
453
454
455
    </div>
456
457
    <div class="footer-pad"></div>
458
  </div>
459
460
  <footer>
461
  <div class="footer">
462
    <div class="wrapper no-pad">
463
      <ul class="footer-left">
464
        <li><a href="/terms">Terms of Use</a></li>
465
        <li><a href="https://help.github.com/articles/github-privacy-policy/">Privacy</a></li>
466
        <li><a href="http://contributor-covenant.org/version/1/2/0">Code of Conduct</a></li>
467
        <li><a href="/releases">Releases</a></li>
468
        <li><a href="/faq">FAQ</a></li>
469
        <li><a href="/contact">Contact</a></li>
470
      </ul>
471
472
      <div class="footer-right">
473
        <a href="https://github.com"><span class="octicon octicon-code"></span> with <span class="octicon octicon-heart"></span> by <span class="octicon octicon-logo-github"></span></a>
474
      </div>
475
    </div>
476
  </div>
477
</footer>
478
479
480
481
<div id="lean_overlay"></div><div id="lean_overlay"></div><div id="global-zeroclipboard-html-bridge" class="global-zeroclipboard-container" style="position: absolute; left: 0px; top: -9999px; width: 15px; height: 15px; z-index: 999999999;">      <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="global-zeroclipboard-flash-bridge" width="100%" height="100%">         <param name="movie" value="//github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/ZeroClipboard-1271a06aa3ba38e76fdbc8393d3d0b9e.swf?noCache=1473427863527">         <param name="allowScriptAccess" value="always">         <param name="scale" value="exactfit">         <param name="loop" value="false">         <param name="menu" value="false">         <param name="quality" value="best">         <param name="bgcolor" value="#ffffff">         <param name="wmode" value="transparent">         <param name="flashvars" value="trustedOrigins=atom.io%2C%2F%2Fatom.io%2Chttps%3A%2F%2Fatom.io">         <embed src="//github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/ZeroClipboard-1271a06aa3ba38e76fdbc8393d3d0b9e.swf?noCache=1473427863527" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="100%" height="100%" name="global-zeroclipboard-flash-bridge" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="trustedOrigins=atom.io%2C%2F%2Fatom.io%2Chttps%3A%2F%2Fatom.io" scale="exactfit">                </object></div></body></html>
Tests:
  • document body

     
    document.body.dataset.luckynumber
  • qs

     
    document.querySelector('body').dataset.luckynumber
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    document body
    qs

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 8 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36
Chrome 53 on Mac OS X 10.11.1
View result in a separate tab
Test name Executions per second
document body 2692756.8 Ops/sec
qs 1709418.9 Ops/sec