blob: c3e7b300138431b5c56a1d4e661c0d43fa465f55 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content=", ">
<title>Defining custom commands for Che-Theia | Eclipse Che Documentation</title>
<link rel="stylesheet" href="/che/docs/css/syntax.css">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
<!--<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">-->
<link rel="stylesheet" href="/che/docs/css/modern-business.css">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="/che/docs/css/customstyles.css">
<link rel="stylesheet" href="/che/docs/css/boxshadowproperties.css">
<!-- most color styles are extracted out to here -->
<link rel="stylesheet" href="/che/docs/css/theme-che.css">
<link rel="stylesheet" href="/che/docs/css/coderay.css" media="screen" type="text/css">
<link rel="stylesheet" href="/che/docs/css/asciidoc.css" type="text/css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" crossorigin="anonymous"></script>
<script src="/che/docs/js/jquery.navgoco.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Anchor.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js" crossorigin="anonymous"></script>
<script src="/che/docs/js/toc.js"></script>
<script src="/che/docs/js/customscripts.js"></script>
<link rel="shortcut icon" href="/che/docs/images/favicon.ico">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="alternate" type="application/rss+xml" title="che" href="/feed.xml">
<script>
$(document).ready(function() {
// Initialize navgoco with default options
$("#mysidebar").navgoco({
caretHtml: '',
accordion: false,
openClass: 'active', // open
save: false, // leave false or nav highlighting doesn't work right
cookie: {
name: 'navgoco',
expires: false,
path: '/'
},
slide: {
duration: 400,
easing: 'swing'
}
});
$("#collapseAll").click(function(e) {
e.preventDefault();
$("#mysidebar").navgoco('toggle', false);
});
$("#expandAll").click(function(e) {
e.preventDefault();
$("#mysidebar").navgoco('toggle', true);
});
});
</script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
<script>
$(document).ready(function() {
$("#tg-sb-link").click(function() {
$("#tg-sb-sidebar").toggle();
$("#tg-sb-content").toggleClass('col-md-9');
$("#tg-sb-content").toggleClass('col-md-12');
$("#tg-sb-icon").toggleClass('fa-toggle-on');
$("#tg-sb-icon").toggleClass('fa-toggle-off');
});
});
</script>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container topnavlinks">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="fa fa-home fa-lg navbar-brand" href="/che/docs/">&nbsp;<span class="projectTitle"> Eclipse Che Documentation</span></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<!-- toggle sidebar button -->
<li><a id="tg-sb-link" href="#"><i id="tg-sb-icon" class="fa fa-toggle-on"></i> Nav</a></li>
<!-- entries without drop-downs appear here -->
<li><a href="https://medium.com/eclipse-che-blog/" target="_blank">Blog</a></li>
<li><a href="https://github.com/eclipse/che" target="_blank">Source Code</a></li>
<!-- entries with drop-downs appear here -->
<!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Support<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="https://github.com/eclipse/che/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Akind%2Fbug" target="_blank">Known Bugs</a></li>
<li><a href="https://github.com/eclipse/che/issues/new" target="_blank">File an Issue</a></li>
<li><a href="https://stackoverflow.com/questions/tagged/eclipse-che" target="_blank">Che on StackOverflow</a></li>
</ul>
</li>
<!--
<li>
<a class="email" title="Submit feedback" href="#" onclick="javascript:window.location='mailto:?subject= feedback&body=I have some feedback about the Defining custom commands for Che-Theia page: ' + window.location.href;"><i class="fa fa-envelope-o"></i> Feedback</a>
</li>
-->
<!--comment out this block if you want to hide search-->
<li>
<!--start search-->
<div id="search-demo-container">
<input type="text" id="search-input" placeholder="search...">
<ul id="results-container"></ul>
</div>
<script src="/che/docs/js/jekyll-search.js" type="text/javascript"></script>
<script type="text/javascript">
SimpleJekyllSearch.init({
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('results-container'),
dataSource: "/che/docs/search.json",
searchResultTemplate: '<li><a href="{url}" title="Defining custom commands for Che-Theia">{title}</a></li>',
noResultsText: 'No results found.',
limit: 10,
fuzzy: true,
})
</script>
<!--end search-->
</li>
</ul>
</div>
</div>
<!-- /.container -->
</nav>
<!-- Page Content -->
<div class="container">
<div id="main">
<!-- Content Row -->
<div class="row">
<!-- Sidebar Column -->
<div class="col-md-3" id="tg-sb-sidebar">
<ul id="mysidebar" class="nav">
<li class="sidebarTitle"> </li>
<div class="sidebarSubtitle">Overview</div>
<li>
<a href="/che/docs/che-7/introduction-to-eclipse-che">Introduction to Che</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Che quick-starts</a>
<ul>
<li><a href="/che/docs/che-7/che-quick-starts">Overview</a></li>
<li><a href="/che/docs/che-7/installing-the-chectl-management-tool">Installing the chectl management tool</a></li>
<li><a href="/che/docs/che-7/running-che-locally">Running Che locally</a></li>
<li><a href="/che/docs/che-7/deploying-che-on-kubernetes-on-aws">Che on Amazon Web Services</a></li>
<li><a href="/che/docs/che-7/installing-che-on-openshift-3-using-the-operator">Che on OpenShift 3</a></li>
<li><a href="/che/docs/che-7/installing-che-on-openshift-4-from-operatorhub">Che on OpenShift 4</a></li>
<li><a href="/che/docs/che-7/installing-che-on-google-cloud-platform">Che on Google Cloud Platform</a></li>
<li><a href="/che/docs/che-7/installing-eclipse-che-on-microsoft-azure">Che on Microsoft Azure</a></li>
<li><a href="/che/docs/che-7/accessing-che-from-openshift-developer-perspective">Accessing Che from OpenShift Developer Perspective</a></li>
</ul>
</li>
<li>
<a href="/che/docs/che-7/hosted-che">Hosted Che</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Che architecture</a>
<ul>
<li><a href="/che/docs/che-7/che-architecture">Overview</a></li>
<li><a href="/che/docs/che-7/high-level-che-architecture">High-level Che architecture</a></li>
<li><a href="/che/docs/che-7/che-workspace-controller">Che workspace controller</a></li>
<li><a href="/che/docs/che-7/che-workspaces-architecture">Che workspaces architecture</a></li>
</ul>
</li>
<div class="sidebarSubtitle">End-user Guide</div>
<li>
<a href="/che/docs/che-7/navigating-che-using-the-dashboard">Navigating Che: dashboard</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Che-Theia IDE basics</a>
<ul>
<li><a href="/che/docs/che-7/che-theia-ide-basics">Overview</a></li>
<li><a href="/che/docs/che-7/defining-custom-commands-for-che-theia">Defining custom commands for Che-Theia</a></li>
<li><a href="/che/docs/che-7/version-control">Version Control</a></li>
<li><a href="/che/docs/che-7/che-theia-troubleshooting">Che-Theia Troubleshooting</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Using developer workspaces</a>
<ul>
<li><a href="/che/docs/che-7/workspaces-overview">Overview</a></li>
<li><a href="/che/docs/che-7/configuring-a-workspace-using-a-devfile">Configuring a workspace using a devfile</a></li>
<li><a href="/che/docs/che-7/making-a-workspace-portable-using-a-devfile">Making a workspace portable using a devfile</a></li>
<li><a href="/che/docs/che-7/converting-a-che-6-workspace-to-a-che-7-devfile">Converting a Che 6 Workspace to a Che 7 devfile</a></li>
<li><a href="/che/docs/che-7/creating-and-configuring-a-new-che-7-workspace">Creating and configuring a new Che 7 workspace</a></li>
<li><a href="/che/docs/che-7/importing-a-kubernetes-application-into-a-che-workspace">Importing a Kubernetes application into a Che workspace</a></li>
<li><a href="/che/docs/che-7/remotely-accessing-che-workspaces">Remotely accessing workspaces</a></li>
<li><a href="/che/docs/che-7/creating-a-workspace-from-code-sample">Creating a workspace from code sample</a></li>
<li><a href="/che/docs/che-7/creating-a-workspace-by-importing-source-code-of-a-project">Creating a workspace by importing source code of a project</a></li>
<li><a href="/che/docs/che-7/configuring-workspace-exposure-strategies">Configuring workspace exposure strategies</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Customizing developer environments</a>
<ul>
<li><a href="/che/docs/che-7/customizing-developer-environments">Overview</a></li>
<li><a href="/che/docs/che-7/what-is-a-che-theia-plug-in">What is a Che-Theia plug-in</a></li>
<li><a href="/che/docs/che-7/using-alternative-ides-in-che">Using alternative IDEs in Che</a></li>
<li><a href="/che/docs/che-7/using-a-visual-studio-code-extension-in-che">Using a VS Code extension in Che</a></li>
<li><a href="/che/docs/che-7/adding-tools-to-che-after-creating-a-workspace">Adding tools to Che after creating a workspace</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Configuring OAuth authorization</a>
<ul>
<li><a href="/che/docs/che-7/configuring-oauth-authorization">Overview</a></li>
<li><a href="/che/docs/che-7/configuring-github-oauth">Configuring GitHub OAuth</a></li>
<li><a href="/che/docs/che-7/configuring-openshift-oauth">Configuring OpenShift OAuth</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Using artifact repositories in a restricted environment</a>
<ul>
<li><a href="/che/docs/che-7/using-artifact-repositories-in-a-restricted-environment">Overview</a></li>
<li><a href="/che/docs/che-7/using-maven-artifact-repositories">Using Maven artifact repositories</a></li>
<li><a href="/che/docs/che-7/using-gradle-artifact-repositories">Using Gradle artifact repositories</a></li>
<li><a href="/che/docs/che-7/using-python-artifact-repositories">Using Python artifact repositories</a></li>
<li><a href="/che/docs/che-7/using-go-artifact-repositories">Using Go artifact repositories</a></li>
<li><a href="/che/docs/che-7/using-nuget-artifact-repositories">Using NuGet artifact repositories</a></li>
<li><a href="/che/docs/che-7/using-npm-artifact-repositories">Using npm artifact repositories</a></li>
</ul>
</li>
<li>
<a href="/che/docs/che-7/troubleshooting-for-che-end-users">Troubleshooting for Che end users</a>
<ul>
</ul>
</li>
<div class="sidebarSubtitle">Installation Guide</div>
<li>
<a href="/che/docs/che-7/installing-che-in-restricted-environment">Installing Che in restricted environment</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/upgrading-che">Upgrading Che</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/advanced-configuration-options">Advanced configuration options</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/uninstalling-che">Uninstalling Che</a>
<ul>
</ul>
</li>
<div class="sidebarSubtitle">Administration Guide</div>
<li>
<a href="#" class="expandable">Customizing devfile and plug-in registries</a>
<ul>
<li><a href="/che/docs/che-7/customizing-the-devfile-and-plug-in-registries">Overview</a></li>
<li><a href="/che/docs/che-7/building-and-running-a-custom-registry-image">Building and running a custom registry image</a></li>
<li><a href="/che/docs/che-7/including-the-plug-in-binaries-in-the-registry-image">Including the plug-in binaries in the registry image</a></li>
<li><a href="/che/docs/che-7/editing-a-devfile-and-plug-in-at-runtime">Editing a devfile and plug-in at runtime</a></li>
</ul>
</li>
<li>
<a href="/che/docs/che-7/configuring-system-variables">Configuring system variables</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Retrieving Che logs</a>
<ul>
<li><a href="/che/docs/che-7/retrieving-che-logs">Overview</a></li>
<li><a href="/che/docs/che-7/viewing-kubernetes-events">Accessing Kubernetes events on OpenShift</a></li>
<li><a href="/che/docs/che-7/viewing-che-server-logs">Viewing Che server logs</a></li>
<li><a href="/che/docs/che-7/viewing-external-service-logs">Viewing external service logs</a></li>
<li><a href="/che/docs/che-7/viewing-che-workspaces-logs">Viewing Che workspaces logs</a></li>
<li><a href="/che/docs/che-7/viewing-plug-in-broker-logs">Viewing Plug-in broker logs</a></li>
<li><a href="/che/docs/che-7/collecting-logs-using-chectl">Collecting logs using chectl</a></li>
</ul>
</li>
<li>
<a href="/che/docs/che-7/monitoring-che">Monitoring Che</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/tracing-che">Tracing Che</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Managing users</a>
<ul>
<li><a href="/che/docs/che-7/managing-users">Overview</a></li>
<li><a href="/che/docs/che-7/configuring-authorization">Configuring authorization</a></li>
<li><a href="/che/docs/che-7/using-organizations">Using organizations</a></li>
<li><a href="/che/docs/che-7/removing-user-data">Removing user data</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Securing Che</a>
<ul>
<li><a href="/che/docs/che-7/securing-che">Overview</a></li>
<li><a href="/che/docs/che-7/authenticating-users">Authenticating users</a></li>
<li><a href="/che/docs/che-7/authorizing-users">Authorizing users</a></li>
</ul>
</li>
<li>
<a href="#" class="expandable">Backup and disaster recovery</a>
<ul>
<li><a href="/che/docs/che-7/backup-and-disaster-recovery">Overview</a></li>
<li><a href="/che/docs/che-7/external-database-setup">External database setup</a></li>
<li><a href="/che/docs/che-7/persistent-volumes-backups">Persistent Volumes backups</a></li>
</ul>
</li>
<li>
<a href="/che/docs/che-7/calculating-che-resource-requirements">Calculating Che resource requirements</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/caching-images-for-faster-workspace-start">Caching images for faster workspace start</a>
<ul>
</ul>
</li>
<div class="sidebarSubtitle">Contributor Guide</div>
<li>
<a href="/che/docs/che-7/installing-che-in-tls-mode-with-self-signed-certificates">Installing Che in TLS mode with self-signed certificates</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/branding-che-theia">Branding Che-Theia</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/developing-che-theia-plug-ins">Developing Che-Theia plug-ins</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/testing-che-theia-plug-ins">Testing Che-Theia plug-ins</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/publishing-che-theia-plug-ins">Publishing Che-Theia plug-ins</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/adding-support-for-a-new-language">Adding support for a new language</a>
<ul>
</ul>
</li>
<li>
<a href="/che/docs/che-7/adding-support-for-a-new-debugger">Adding support for a new debugger</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">Che extensibility reference</a>
<ul>
<li><a href="/che/docs/che-7/che-extensibility-reference">Overview</a></li>
<li><a href="/che/docs/che-7/che-extension-points">Che extension points</a></li>
<li><a href="/che/docs/che-7/che-theia-plug-in-api">Che-Theia plug-in API</a></li>
<li><a href="/che/docs/che-7/debug-adapter-protocol">Debug Adapter Protocol</a></li>
<li><a href="/che/docs/che-7/language-server-protocol">Language Server Protocol</a></li>
</ul>
</li>
<div class="sidebarSubtitle">Extensions</div>
<li>
<a href="/che/docs/che-7/eclipse-che4z">Eclipse Che4z</a>
<ul>
</ul>
</li>
<li>
<a href="#" class="expandable">OpenShift Connector</a>
<ul>
<li><a href="/che/docs/che-7/openshift-connector-overview">Overview</a></li>
<li><a href="/che/docs/che-7/features-of-openshift-connector">Features of OpenShift Connector</a></li>
<li><a href="/che/docs/che-7/installing-openshift-connector-in-eclipse-che">Installing OpenShift Connector in Eclipse Che</a></li>
<li><a href="/che/docs/che-7/authenticating-with-openshift-connector-from-eclipse-che">Authenticating with OpenShift Connector from Eclipse Che</a></li>
<li><a href="/che/docs/che-7/creating-components-with-openshift-connector-in-eclipse-che">Creating Components with OpenShift Connector in Eclipse Che</a></li>
<li><a href="/che/docs/che-7/connecting-source-code-from-github-to-a-openshift-component-using-openshift-connector">Connecting source code from GitHub to a OpenShift Component</a></li>
</ul>
</li>
<!-- if you aren't using the accordion, uncomment this block: -->
<!-- <p class="external">
<a href="#" id="collapseAll">Collapse all</a> | <a href="#" id="expandAll">Expand all</a>
</p>-->
</ul>
<!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
<script>$("li.active").parents('li').toggleClass("active");</script>
</div>
<!-- Content Column -->
<div class="col-md-9" id="tg-sb-content">
<div class="post-header">
<h1 class="post-title-main">Defining custom commands for Che-Theia</h1>
</div>
<div class="post-content">
<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
// Handler for .ready() called.
$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2' });
/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
var target = $(this.getAttribute('href'))
, scroll_target = target.offset().top
$(window).scrollTop(scroll_target - 10);
return false
})
});
</script>
<div id="toc"></div>
<!--
-->
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The Che-Theia IDE allows users to define custom commands in a devfile that are then available when working in a workspace.</p>
</div>
<div class="paragraph">
<p>The following is an example of the <code>commands</code> section of a devfile.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="yaml"><span style="color:#606">commands</span>:
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">name: theia:build</span></span>
<span style="color:#606">actions</span>:
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">type: exec</span></span>
<span style="color:#606">component</span>: <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">che-dev</span></span>
<span style="color:#606">command</span>: <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#710">&gt;</span><span style="color:#D20">
yarn</span></span>
<span style="color:#606">workdir</span>: <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">/projects/theia</span></span>
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">name: run</span></span>
<span style="color:#606">actions</span>:
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">type: vscode-task</span></span>
<span style="color:#606">referenceContent</span>: <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#710">|</span><span style="color:#D20">
{
&quot;version&quot;: &quot;2.0.0&quot;,
&quot;tasks&quot;:
[
{
&quot;label&quot;: &quot;theia:watch&quot;,
&quot;type&quot;: &quot;shell&quot;,
&quot;options&quot;: {&quot;cwd&quot;: &quot;/projects/theia&quot;},
&quot;command&quot;: &quot;yarn&quot;,
&quot;args&quot;: [&quot;watch&quot;]
}
]
}</span></span>
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">name: debug</span></span>
<span style="color:#606">actions</span>:
- <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#D20">type: vscode-launch</span></span>
<span style="color:#606">referenceContent</span>: <span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#710">|</span><span style="color:#D20">
{
&quot;version&quot;: &quot;0.2.0&quot;,
&quot;configurations&quot;: [
{
&quot;type&quot;: &quot;node&quot;,
&quot;request&quot;: &quot;attach&quot;,
&quot;name&quot;: &quot;Attach by Process ID&quot;,
&quot;processId&quot;: &quot;${command:PickProcess}&quot;
}
]
}</span></span></code></pre>
</div>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Che commands</dt>
<dd>
<p><code>theia:build</code></p>
<div class="ulist">
<ul>
<li>
<p>The <code>exec</code> type implies that the Che runner is used for command execution. The user can specify the component in whose container the command is executed.</p>
</li>
<li>
<p>The <code>command</code> field contains the command line for execution.</p>
</li>
<li>
<p>The <code>workdir</code> is the working directory in which the command is executed.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">Visual Studio Code (VS Code) tasks</dt>
<dd>
<p><code>run</code></p>
<div class="ulist">
<ul>
<li>
<p>The type is <code>vscode-task</code>.</p>
</li>
<li>
<p>For this type of command, the <code>referenceContent</code> field must contain content with task configurations in the VS Code format.</p>
</li>
<li>
<p>For more information about VS Code tasks, see the Task section on the <a href="https://code.visualstudio.com/docs/editor/tasks">Visual Studio User Guide page</a>.</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">VS Code launch configurations</dt>
<dd>
<p><code>debug</code></p>
<div class="ulist">
<ul>
<li>
<p>The type is <code>vscode-launch</code>.</p>
</li>
<li>
<p>It contains the launch configurations in the VS Code format.</p>
</li>
<li>
<p>For more information about VS Code launch configurations, see the Debugging section on the <a href="https://code.visualstudio.com/docs/editor/debugging#_launch-configurations">Visual Studio documentation page</a>.</p>
</li>
</ul>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>For a list of available tasks and launch configurations, see the <code>tasks.json</code> and the <code>launch.json</code> configuration files in the <code>/workspace/.theia</code> directory where the configuration from the devfile is exported to.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="che-theia-task-types_defining-custom-commands-for-che-theia">Che-Theia task types</h2>
<div class="sectionbody">
<div class="paragraph">
<p>There are two types of tasks in a devfile: tasks in the VS Code format and Che commands. Tasks from the devfile are copied to the configuration file when the workspace is started. Depending on the type of the task, the task is then available for running:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Che commands: From the <strong>Terminal</strong> &#8594; <strong>Run Task</strong> menu in the <strong>configured tasks</strong> section, or from the <strong>My Workspace</strong> panel</p>
</li>
<li>
<p>Tasks in the VS Code format: From the <strong>Run Tasks</strong> menu</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>To run the task definitions provided by plug-ins, select the <strong>Terminal</strong> &#8594; <strong>Run Task</strong> menu option. The tasks are placed in the <strong>detected tasks</strong> section.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="running-and-debugging_defining-custom-commands-for-che-theia">Running and debugging</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Che-Theia supports the <a href="https://microsoft.github.io/debug-adapter-protocol/">Debug Adapter Protocol</a>. This protocol defines a generic way for how a development tool can communicate with a debugger. It means Che-Theia works with all <a href="https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/">implementations</a>.</p>
</div>
<div class="ulist">
<div class="title">Prerequisites</div>
<ul>
<li>
<p>A running instance of Eclipse Che. To install an instance of Eclipse Che, see <a href="/che/docs/che-7/che-quick-starts/">Che 'quick-starts'</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<div class="title">Procedure</div>
<p>To debug an application:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Click <strong>Debug</strong> &#8594; <strong>Add Configuration</strong> to add debugging or launch configuration to the project.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-1.png" alt="che theia basics 1">
</div>
</div>
</li>
<li>
<p>From the pop-up menu, select the appropriate configuration for the application that you want to debug.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-2.png" alt="che theia basics 2">
</div>
</div>
</li>
<li>
<p>Update the configuration by modifying or adding attributes.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-3.png" alt="che theia basics 3">
</div>
</div>
</li>
<li>
<p>Breakpoints can be toggled by clicking the editor margin.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-3-b.png" alt="che theia basics 3 b">
</div>
</div>
</li>
<li>
<p>Open the context menu of the breakpoint to add conditions.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-3-c.png" alt="che theia basics 3 c">
</div>
</div>
</li>
<li>
<p>To start debugging, click <strong>View</strong> &#8594; <strong>Debug</strong>.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-4.png" alt="che theia basics 4">
</div>
</div>
</li>
<li>
<p>In the <strong>Debug</strong> view, select the configuration and press <strong>F5</strong> to debug the application. Or, start the application without debugging by pressing <strong>Ctrl+F5</strong>.</p>
<div class="imageblock">
<div class="content">
<img src="/che/docs/images/ide/che-theia-basics-5.png" alt="che theia basics 5">
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="editing-task-and-launch-configuration_defining-custom-commands-for-che-theia">Editing a task and launch configuration</h2>
<div class="sectionbody">
<div class="paragraph">
<div class="title">Procedure</div>
<p>To customize the configuration file:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Edit the <code>tasks.json</code> or <code>launch.json</code> configuration files.</p>
</li>
<li>
<p>Add new definitions to the configuration file or modify the existing ones.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The changes are stored in the configuration file.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>To customize the task configuration provided by plug-ins, select the <strong>Terminal</strong> &#8594; <strong>Configure TasksS</strong> menu option, and choose the task to configure. The configuration is then copied to the <code>tasks.json</code> file and is available for editing.</p>
</li>
</ol>
</div>
</div>
</div>
<div class="tags">
<b>Tags: </b>
</div>
<!--
-->
</div>
<hr class="shaded"/>
<footer>
<div class="row">
<div class="col-lg-12 footer">
Eclipse Che - Documentation <br/>
Site last generated: Apr 29, 2020 <br/>
<hr>
<a href="http://www.eclipse.org" target="_blank">Eclipse Foundation</a><br/>
<a href="http://www.eclipse.org/legal/privacy.php" target="_blank">Privacy Policy</a><br/>
<a href="http://www.eclipse.org/legal/termsofuse.php" target="_blank">Terms of Use</a><br/>
<a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">Eclipse Public License</a><br/>
<a href="http://www.eclipse.org/legal" target="_blank">Legal Resources</a><br/>
</div>
</div>
</footer>
<!-- /.row -->
</div>
<!-- /.container -->
</div>
<!-- /#main -->
</div>
</body>
</html>