Skip to content

Commit 4ed78df

Browse files
author
Eugene Ivantsov
committed
Auto crete files with hello world content when creating C, C++, and Python projects from scratch
Signed-off-by: Eugene Ivantsov <eivantsov@codenvy.com>
1 parent 6e3aa1c commit 4ed78df

10 files changed

Lines changed: 121 additions & 3 deletions

File tree

plugins/plugin-cpp/che-plugin-cpp-lang-server/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
<groupId>com.google.inject.extensions</groupId>
3333
<artifactId>guice-multibindings</artifactId>
3434
</dependency>
35+
<dependency>
36+
<groupId>org.eclipse.che.core</groupId>
37+
<artifactId>che-core-api-core</artifactId>
38+
</dependency>
3539
<dependency>
3640
<groupId>org.eclipse.che.core</groupId>
3741
<artifactId>che-core-api-project</artifactId>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2012-2016 Codenvy, S.A.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* Codenvy, S.A. - initial API and implementation
10+
*******************************************************************************/
11+
12+
package org.eclipse.che.plugin.cpp.generator;
13+
14+
import org.eclipse.che.api.core.ConflictException;
15+
import org.eclipse.che.api.core.ForbiddenException;
16+
import org.eclipse.che.api.core.ServerException;
17+
import org.eclipse.che.api.project.server.FolderEntry;
18+
import org.eclipse.che.api.project.server.handlers.CreateProjectHandler;
19+
import org.eclipse.che.api.project.server.type.AttributeValue;
20+
import org.eclipse.che.plugin.cpp.shared.Constants;
21+
22+
import java.util.Map;
23+
24+
public class CProjectGenerator implements CreateProjectHandler {
25+
26+
private static final String FILE_NAME = "hello.c";
27+
28+
@Override
29+
public void onCreateProject(FolderEntry baseFolder,
30+
Map<String, AttributeValue> attributes,
31+
Map<String, String> options) throws ForbiddenException, ConflictException, ServerException {
32+
baseFolder.createFile(FILE_NAME, getClass().getClassLoader().getResourceAsStream("files/default_c_content"));
33+
}
34+
35+
@Override
36+
public String getProjectType() {
37+
return Constants.C_PROJECT_TYPE_ID;
38+
}
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2012-2016 Codenvy, S.A.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* Codenvy, S.A. - initial API and implementation
10+
*******************************************************************************/
11+
12+
package org.eclipse.che.plugin.cpp.generator;
13+
14+
import org.eclipse.che.api.core.ConflictException;
15+
import org.eclipse.che.api.core.ForbiddenException;
16+
import org.eclipse.che.api.core.ServerException;
17+
import org.eclipse.che.api.project.server.FolderEntry;
18+
import org.eclipse.che.api.project.server.handlers.CreateProjectHandler;
19+
import org.eclipse.che.api.project.server.type.AttributeValue;
20+
import org.eclipse.che.plugin.cpp.shared.Constants;
21+
22+
import java.util.Map;
23+
24+
public class CppProjectGenerator implements CreateProjectHandler {
25+
26+
private static final String FILE_NAME = "hello.cpp";
27+
28+
@Override
29+
public void onCreateProject(FolderEntry baseFolder,
30+
Map<String, AttributeValue> attributes,
31+
Map<String, String> options) throws ForbiddenException, ConflictException, ServerException {
32+
baseFolder.createFile(FILE_NAME, getClass().getClassLoader().getResourceAsStream("files/default_cpp_content"));
33+
}
34+
35+
@Override
36+
public String getProjectType() {
37+
return Constants.CPP_PROJECT_TYPE_ID;
38+
}
39+
}
40+

plugins/plugin-cpp/che-plugin-cpp-lang-server/src/main/java/org/eclipse/che/plugin/cpp/inject/CppModule.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@
1212

1313
import com.google.inject.AbstractModule;
1414
import com.google.inject.multibindings.Multibinder;
15+
16+
import org.eclipse.che.api.project.server.handlers.ProjectHandler;
1517
import org.eclipse.che.api.project.server.type.ProjectTypeDef;
1618
import org.eclipse.che.inject.DynaModule;
19+
import org.eclipse.che.plugin.cpp.generator.CProjectGenerator;
20+
import org.eclipse.che.plugin.cpp.generator.CppProjectGenerator;
1721
import org.eclipse.che.plugin.cpp.projecttype.CProjectType;
1822
import org.eclipse.che.plugin.cpp.projecttype.CppProjectType;
1923

24+
import static com.google.inject.multibindings.Multibinder.newSetBinder;
25+
2026
/**
2127
* @author Vitaly Parfonov
2228
*/
@@ -27,5 +33,9 @@ protected void configure() {
2733
Multibinder<ProjectTypeDef> projectTypeMultibinder = Multibinder.newSetBinder(binder(), ProjectTypeDef.class);
2834
projectTypeMultibinder.addBinding().to(CProjectType.class);
2935
projectTypeMultibinder.addBinding().to(CppProjectType.class);
36+
37+
Multibinder<ProjectHandler> projectHandlerMultibinder = newSetBinder(binder(), ProjectHandler.class);
38+
projectHandlerMultibinder.addBinding().to(CppProjectGenerator.class);
39+
projectHandlerMultibinder.addBinding().to(CProjectGenerator.class);
3040
}
3141
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/* Hello World program */
2+
3+
#include<stdio.h>
4+
5+
main()
6+
{
7+
printf("Hello World");
8+
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/* Hello World program */
2+
3+
#include <iostream.h>
4+
5+
main()
6+
{
7+
cout << "Hello World!";
8+
return 0;
9+
}

plugins/plugin-nodejs/che-plugin-nodejs-lang-server/src/main/java/org/eclipse/che/plugin/nodejs/generator/NodeJsProjectGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ public class NodeJsProjectGenerator implements CreateProjectHandler {
3333
public void onCreateProject(FolderEntry baseFolder,
3434
Map<String, AttributeValue> attributes,
3535
Map<String, String> options) throws ForbiddenException, ConflictException, ServerException {
36-
baseFolder.createFile(FILE_NAME, getClass().getClassLoader().getResourceAsStream("files/default_content"));
36+
baseFolder.createFile(FILE_NAME, getClass().getClassLoader().getResourceAsStream("files/default_node_content"));
3737
}
3838

3939
@Override
4040
public String getProjectType() {
4141
return Constants.NODE_JS_PROJECT_TYPE_ID;
4242
}
4343
}
44+

plugins/plugin-nodejs/che-plugin-nodejs-lang-server/src/main/resources/files/default_content renamed to plugins/plugin-nodejs/che-plugin-nodejs-lang-server/src/main/resources/files/default_node_content

File renamed without changes.

plugins/plugin-python/che-plugin-python-lang-server/src/main/java/org/eclipse/che/plugin/python/generator/PythonProjectGenerator.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,14 @@
2424
* @author Valeriy Svydenko
2525
*/
2626
public class PythonProjectGenerator implements CreateProjectHandler {
27+
28+
private static final String FILE_NAME = "main.py";
29+
2730
@Override
28-
public void onCreateProject(FolderEntry baseFolder, Map<String, AttributeValue> attributes, Map<String, String> options)
29-
throws ForbiddenException, ConflictException, ServerException {
31+
public void onCreateProject(FolderEntry baseFolder,
32+
Map<String, AttributeValue> attributes,
33+
Map<String, String> options) throws ForbiddenException, ConflictException, ServerException {
34+
baseFolder.createFile(FILE_NAME, getClass().getClassLoader().getResourceAsStream("files/default_python_content"));
3035
}
3136

3237
@Override
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
print "Hello World!"

0 commit comments

Comments
 (0)