<html prefix="og: http://ogp.me/ns#"><head>
<meta charset="UTF-8">
<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>
<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>
<title>project-manager</title>
<link rel="stylesheet" media="all" href="https://github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/application-ba07c5c2889a34307a4b7d49410451d9.css" data-turbolinks-track="true">
<script src="https://github-atom-io-herokuapp-com.global.ssl.fastly.net/assets/application-3db62b578ebfc39ee871abc91b175302.js" data-turbolinks-track="true"></script>
<meta name="csrf-param" content="authenticity_token">
<meta name="csrf-token" content="AXBSBYtFNzpFrPZ6KTxP1EaYvy+M9SNIjjb8FG+IwZPcT+N6XQiWZ682Ag3IqRcnHh4lanQa+scCltO/uIGN2A==">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-3769691-35', 'atom.io');
ga('send', 'pageview');
</script>
<meta property="og:url" content="https://atom.io/packages/project-manager">
<meta property="og:site_name" content="Atom">
<meta property="og:title" content="project-manager">
<meta property="og:description" content="Project Manager for easy access and switching between projects in Atom.">
<meta property="og:type" content="website">
<meta property="og:author" content="https://github.com/danielbrodin">
<meta property="og:image" content="https://travis-ci.org/danielbrodin/atom-project-manager.svg?branch=master">
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:site" content="@AtomEditor">
<meta property="twitter:creator" content="https://github.com/danielbrodin">
<meta property="twitter:title" content="project-manager">
<meta property="twitter:description" content="Project Manager for easy access and switching between projects in Atom.">
<meta property="twitter:image:src" content="https://travis-ci.org/danielbrodin/atom-project-manager.svg?branch=master">
<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.">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="alternate" type="application/atom+xml" title="Atom Packages and Themes" href="https://atom.io/packages.atom">
</head>
<body data-luckynumber="19293882828282">
<div class="footer-push">
<div class="top-bar">
<div class="wrapper no-pad">
<ul class="navigation">
<li><h1 title="Atom: A hackable text editor for the 21st Century"><a href="/" class="logo-small"></a></h1></li>
<li><a class="is-selected" href="/packages">Packages</a></li>
<li><a class="" href="/themes">Themes</a></li>
<li><a class="" href="/docs">Documentation</a></li>
<li><a href="http://blog.atom.io">Blog</a></li>
<li><a href="http://discuss.atom.io">Discuss</a></li>
</ul>
<div class="top-bar-right">
<a href="/login?last_url=%2Fpackages%2Fproject-manager">
<span class="octicon octicon-log-in"></span> Sign in
</a>
</div>
</div>
</div>
<div id="js-pjax-container">
<div class="wrapper package-show content-push">
<div>
<div class="grid-cell">
<div class="package-card card">
<div class="body css-truncate">
<h4 class="card-name">
<span class="css-truncate-target"><a href="/packages/project-manager">project-manager</a></span>
</h4>
<span class="css-truncate-target card-description">Project Manager for easy access and switching between projects in Atom.</span>
<ul class="keywords">
<li><a href="/packages/search?utf8=✓&q=keyword:project">#project</a></li>
<li><a href="/packages/search?utf8=✓&q=keyword:manager">#manager</a></li>
<li><a href="/packages/search?utf8=✓&q=keyword:settings">#settings</a></li>
<li><a href="/packages/search?utf8=✓&q=keyword:workflow">#workflow</a></li>
<li><a href="/packages/search?utf8=✓&q=keyword:productivity">#productivity</a></li>
</ul>
</div>
<div class="meta">
<a href="/users/danielbrodin">
<img src="https://github.com/danielbrodin.png" alt="danielbrodin" class="gravatar">
</a>
<a href="/users/danielbrodin" class="author">
danielbrodin
</a>
<div class="meta-right">
<a class="linked-octicon" href="https://github.com/danielbrodin/atom-project-manager/releases/tag/v2.9.7">
<span class="stat tooltipped tooltipped-n" aria-label="Latest version">
<span class="octicon octicon-versions"></span> <span class="value">2.9.7</span>
</span>
</a>
<span class="stat tooltipped tooltipped-n" aria-label="Downloads">
<span class="octicon octicon-cloud-download"></span> <span class="value">424,500</span>
</span>
<span class="js-star-wrap">
<div class="star-box tooltipped tooltipped-nw" aria-label="You must be signed in to star packages">
<a href="/packages/project-manager/star" class="js-star-button star-button minibutton with-count disabled " data-skip-pjax="">
<span class="octicon octicon-star"></span>
</a>
<a class="social-count" href="/packages/project-manager/stargazers">
1563
</a>
</div>
</span>
</div> <!-- meta-right -->
</div> <!-- meta -->
</div>
</div>
<div class="package-meta">
<ul>
<li><a href="https://github.com/danielbrodin/atom-project-manager"><span class="octicon octicon-repo"></span> Repo</a></li>
<li><a href="https://github.com/danielbrodin/atom-project-manager/issues"><span class="octicon octicon-bug"></span> Bugs</a></li>
<li><a href="https://github.com/danielbrodin/atom-project-manager/releases"><span class="octicon octicon-versions"></span> Versions</a></li>
<li>
<a href="https://github.com/danielbrodin/atom-project-manager/blob/faa5a97edfb01d1a501b8f7ef9100dbabbb5dcac/LICENSE.md"><span class="octicon octicon-law"></span> License</a>
</li>
</ul>
<a href="#flag-modal" class="js-show-flag show-flag"><span class="octicon octicon-circle-slash"></span> Flag as spam or malicious</a>
</div>
</div>
<div class="markdown-body readme">
<h1>
<a href="#project-manager"></a>Project Manager</h1>
<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>
<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>
<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>
<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>
<p>Get easy access to all your projects and manage them with project specific settings and options.</p>
<h2>
<a href="#install"></a>Install</h2>
<pre><code>$ apm install project-manager
</code></pre>
<p>or open Atom and go to Preferences > Install and search for <code>project-manager</code></p>
<h2>
<a href="#use"></a>Use</h2>
<h3>
<a href="#list-projects"></a>List Projects</h3>
<p><code>ctrl-cmd-p</code> (mac) / <code>alt-shift-P</code> (win & linux) or <code>Project Manager: List Projects</code> in the Command Palette.</p>
<p>You can filter projects by <code>title</code>, <code>group</code> and <code>template</code>.
<code>group: atom</code> would list all projects with the group <code>atom</code>. Default is <code>title</code></p>
<h3>
<a href="#save-project"></a>Save Project</h3>
<p><code>Project Manager: Save Project</code> in the Command Palette and write the title you want to save the project as.</p>
<h3>
<a href="#edit-projects"></a>Edit Projects</h3>
<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>
<h2>
<a href="#project-settings"></a>Project Settings</h2>
<table>
<thead>
<tr>
<th>setting</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>title</code></td>
<td><code>string</code></td>
<td>Projects title. Used in the projects list</td>
<td><code>''</code></td>
</tr>
<tr>
<td><code>paths</code></td>
<td><code>array</code></td>
<td>The folders that will open in the tree view. First path is the main one that counts as the project.</td>
<td><code>[]</code></td>
</tr>
<tr>
<td><code>settings</code></td>
<td><code>Object</code></td>
<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>
<td><code>{}</code></td>
</tr>
<tr>
<td><code>icon</code></td>
<td><code>string</code></td>
<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>
<td><code>'icon-chevron-right'</code></td>
</tr>
<tr>
<td><code>devMode</code></td>
<td><code>boolean</code></td>
<td>
<code>true</code> if project should open in dev mode</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>group</code></td>
<td><code>string</code></td>
<td>Adds a group to the projects list that can be used to group and filter projects</td>
<td><code>null</code></td>
</tr>
<tr>
<td><code>template</code></td>
<td><code>string</code></td>
<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>
<td><code>null</code></td>
</tr>
</tbody>
</table>
<h3>
<a href="#local-settings-file"></a>Local settings file</h3>
<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>
<h3>
<a href="#example"></a>Example</h3>
<pre><code>projectmanager:
title: 'Project Manager'
devMode: true
group: 'Atom'
template: 'coffeescript-template'
paths: [
'/path/to/project-manager'
]
settings:
'*':
'editor.tabLength': 4
'coffeescript-template':
icon: 'icon-coffeescript'
settings:
'.source.coffee':
'editor.tabLength': 2
'editor.preferredLineLength': 80
</code></pre>
<h2>
<a href="#package-settings"></a>Package Settings</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Setting</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Show Path</td>
<td><code>project-manager.showPath</code></td>
<td><code>true</code></td>
<td>Shows each projects paths in the projects list</td>
</tr>
<tr>
<td>Environment Specific Projects</td>
<td><code>project-manager.environmentSpecificProjects</code></td>
<td><code>false</code></td>
<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>
</tr>
<tr>
<td>Sort By</td>
<td><code>project-manager.sortBy</code></td>
<td><code>'default'</code></td>
<td>Will sort the projects list by selected option. Default sorting is the order in which the are</td>
</tr>
<tr>
<td>Close Current</td>
<td><code>project-manager.closeCurrent</code></td>
<td><code>false</code></td>
<td>Closes the current window before opening a new project.</td>
</tr>
</tbody>
</table>
<h2>
<a href="#api"></a>API</h2>
<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>
<pre><code>"consumedServices": {
"project-manager": {
"versions": {
"^2.2.1": "consumeProjectManager"
}
}
}
</code></pre>
<p>Then in your package's main module, call methods on the service</p>
<pre><code>module.exports =
doSomethingWithTheCurrentProject: (project) ->
consumeProjectManager: (PM) ->
PM.projects.getCurrent (project) =>
if project
@doSomethingWithTheCurrentProject(project)
</code></pre>
<h3>
<a href="#methods"></a>Methods</h3>
<h4>
<a href="#projects"></a><code>{Projects}</code>
</h4>
<ul>
<li>
<code>::getAll</code>
<ul>
<li>
<code>{Function} callback</code> - Callback that receives an <code>Array</code> of <code>{Project}</code>'s</li>
</ul>
</li>
<li>
<code>::getCurrent</code>
<ul>
<li>
<code>{Function} callback</code> - Callback that receives the current <code>{Project}</code> or <code>false</code> if there is none active</li>
</ul>
</li>
<li>
<code>::onUpdate</code>
<ul>
<li>
<code>{Function} callback</code> - Will be called each time a project have been updated</li>
</ul>
</li>
</ul>
<h4>
<a href="#project"></a><code>{Project}</code>
</h4>
<ul>
<li>
<code>{props}</code> - Contains all properties of the project like <code>title</code>, <code>paths</code> and <code>settings</code>
</li>
<li>
<code>::open</code> - Will open the project</li>
<li>
<code>::isCurrent</code> - Returns <code>true</code> if it's the current project</li>
<li>
<code>::onUpdate</code>
<ul>
<li>
<code>{Function} callback</code> - Will be called when the project have been updated</li>
</ul>
</li>
<li>
<code>::set</code> - Will set the property on the project
<ul>
<li><code>{String} key</code></li>
<li><code>{Mixed} value</code></li>
</ul>
</li>
<li>
<code>::unset</code> - Will remove the property from the project
<ul>
<li><code>{String} key</code></li>
</ul>
</li>
</ul>
<p>Please let me know if you make something out of it :)</p>
<h2>
<a href="#contribute"></a>Contribute</h2>
<p>If you would like to contribute to the project manager, be it new features or bugs,
please do the following:</p>
<ol>
<li>Fork the repository</li>
<li>Create a new topic branch off the master branch that describe what it does</li>
<li>Commit and push the branch</li>
<li>Make a pull request describing what you have done</li>
<li>Now it will hopefully get merged :)</li>
</ol>
<p>All PR's should:</p>
<ul>
<li>Pass the <a href="https://atom.io/packages/linter-jscs">jscs</a> linter</li>
<li>Pass the <a href="https://atom.io/packages/linter-jshint">jshint</a> linter</li>
<li>Add a test when it makes sense, which should be most of the time</li>
</ul>
<hr>
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=DR4XQWAZV6M2A&lc=SE&item_name=Project%20Manager&item_number=atom%2dproject%2dmanager&currency_code=EUR&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>
</div>
</div>
<div id="flag-modal" style="display:none">
<h2>
I think this package is bad news.
</h2>
<p>
Good catch. Let us know what about this package looks wrong to you, and we'll
investigate right away.
</p>
<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==">
<textarea rows="5" name="flag[message]" id="flag_message"></textarea>
<input type="submit" name="commit" value="Flag project-manager" class="button primary flag-button">
</form></div>
</div>
<div class="footer-pad"></div>
</div>
<footer>
<div class="footer">
<div class="wrapper no-pad">
<ul class="footer-left">
<li><a href="/terms">Terms of Use</a></li>
<li><a href="https://help.github.com/articles/github-privacy-policy/">Privacy</a></li>
<li><a href="http://contributor-covenant.org/version/1/2/0">Code of Conduct</a></li>
<li><a href="/releases">Releases</a></li>
<li><a href="/faq">FAQ</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
<div class="footer-right">
<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>
</div>
</div>
</div>
</footer>
<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>
document.body.dataset.luckynumber
document.querySelector('body').dataset.luckynumber
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
document body | |
qs |
Test name | Executions per second |
---|---|
document body | 2692756.8 Ops/sec |
qs | 1709418.9 Ops/sec |
To analyze the provided code, HTML structure, and test cases, I'll break it down into smaller components.
HTML Structure
The HTML structure appears to be a GitHub page template, likely generated by Jekyll or another static site generator. The main sections are:
There is also an overlay element (#lean_overlay
) and a container for the global ZeroClipboard library.
Code
The code snippets provided seem to be generated by a benchmarking tool, likely BenchmarkJS
. The two code blocks are:
document.body.dataset.luckynumber
statementdocument.querySelector('body').dataset.luckynumber
These code snippets are likely used as benchmarks to measure the execution time of different JavaScript engines or browsers.
Test Cases
The test cases are defined in the "Individual test cases" section:
Benchmark Definition
"document.body.dataset.luckynumber"
and has a corresponding test name "document body"
Benchmark Definition
"document.querySelector('body').dataset.luckynumber"
and has a corresponding test name "qs"
These test cases are likely used to compare the execution times of different browsers or JavaScript engines.
Latest Benchmark Result
The latest benchmark result is provided as an array of objects, which includes:
RawUAString
: The raw User Agent string (e.g., "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")Browser
: The browser name (e.g., "Chrome 53")DevicePlatform
: The device platform (e.g., "Other")OperatingSystem
: The operating system (e.g., "Mac OS X 10.11.1")ExecutionsPerSecond
: The execution rate in secondsTestName
: The corresponding test nameThe array includes two entries, each representing a different browser or JavaScript engine.
Analysis
Without more context or information about the specific use case, it's difficult to provide a detailed analysis. However, I can offer some general insights:
dataset.luckynumber
property suggests that this code is related to benchmarking JavaScript engines or browsers.document.body.dataset.luckynumber
versus document.querySelector('body').dataset.luckynumber
.If you have any specific questions about this code or would like me to dig deeper, please feel free to ask!