All Projects → mopemope → Meghanada Server

mopemope / Meghanada Server

Licence: gpl-3.0
A Java IDE Server for your editor. Java IDE-like features to your favourite text editor.

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Meghanada Server

Pervane
Plain text file based note taking and knowledge base building tool, markdown editor, simple browser IDE.
Stars: ✭ 159 (-25.35%)
Mutual labels:  ide, server
Csharpgameframework
基于unity3d引擎与c#语言的游戏框架/架构(包括客户端与服务器)。使用ServerPlatform作为服务端通信基础设施。
Stars: ✭ 208 (-2.35%)
Mutual labels:  server
Evmongoose
DEPRECATED. Evmongoose is an asynchronous, event(libev) based multi-protocol embedded networking library with functions including TCP, HTTP, WebSocket, MQTT and much more. It's based on mongoose and libev implementation and it's support Lua API.
Stars: ✭ 199 (-6.57%)
Mutual labels:  server
Bas
BrowserAutomationStudio can automate everything that Chrome can.
Stars: ✭ 203 (-4.69%)
Mutual labels:  ide
Secure Wireguard Implementation
A guide on implementing a secure Wireguard server on OVH (or any other Debian VPS) with DNSCrypt, Port Knocking & an SSH-Honeypot
Stars: ✭ 200 (-6.1%)
Mutual labels:  server
Moqui Framework
Use Moqui Framework to build enterprise applications based on Java. It includes tools for databases (relational, graph, document), local and web services, web and other UI with screens and forms, security, file/resource access, scripts, templates, l10n, caching, logging, search, rules, workflow, multi-instance, and integration.
Stars: ✭ 205 (-3.76%)
Mutual labels:  server
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (-6.57%)
Mutual labels:  server
Node Dhcp
A DHCP server and client written in pure JavaScript
Stars: ✭ 212 (-0.47%)
Mutual labels:  server
Gomint
GoMint is a modern Minecraft Bedrock Edition server enabling you to make your visions come true
Stars: ✭ 208 (-2.35%)
Mutual labels:  server
Wire Server
🇪🇺 Wire back-end services
Stars: ✭ 2,392 (+1023%)
Mutual labels:  server
Oksocket
An blocking socket client for Android applications.
Stars: ✭ 2,359 (+1007.51%)
Mutual labels:  server
Atom Ide Rust
Rust IDE support for Atom, powered by the Rust Language Server (RLS)
Stars: ✭ 200 (-6.1%)
Mutual labels:  ide
Erlide eclipse
Eclipse IDE for Erlang
Stars: ✭ 206 (-3.29%)
Mutual labels:  ide
Awesome Online Ide
🌩️ A list of awesome online development environments
Stars: ✭ 2,542 (+1093.43%)
Mutual labels:  ide
Watsontcp
WatsonTcp is the easiest way to build TCP-based clients and servers in C#.
Stars: ✭ 209 (-1.88%)
Mutual labels:  server
Basically Fullstack Graphql
Code that aims to explain the client and the server side of using GraphQL in apps.
Stars: ✭ 199 (-6.57%)
Mutual labels:  server
Addon Vscode
Visual Studio Code - Home Assistant Community Add-ons
Stars: ✭ 201 (-5.63%)
Mutual labels:  ide
Vscode Nim
An extension for VS Code which provides support for the Nim language.
Stars: ✭ 204 (-4.23%)
Mutual labels:  ide
Pipeline
Node-based automation server
Stars: ✭ 212 (-0.47%)
Mutual labels:  server
Aqueduct
Dart HTTP server framework for building REST APIs. Includes PostgreSQL ORM and OAuth2 provider.
Stars: ✭ 2,412 (+1032.39%)
Mutual labels:  server

Meghanada-Server

Join the chat at https://gitter.im/mopemope/meghanada-server Patreon Github

A Java IDE Server for your editor. Java IDE-like features to your favourite text editor.

Features

Some planned and implemented features:

  • Server supports a network connection
  • Gradle and Maven and Eclipse project support
  • Run build tool task
  • Compile your project
  • Support annotaion processor
  • Analyze java source (hooks into build)
  • Code completion
  • Optimize import
  • Jump declaration (without source)
  • Run junit test (include test runner)
  • Search references
  • Full-featured text search (default off)

Meghanada-Server support only emacs client (meghanada-mode)

The Meghanada architecture is almost the same as ensime. It is client server model.

Meghanada updates any information when saving and compile the java file.

Building

Requirement

  • JDK 8 or later.

If your project were maven project, It needs maven and add mvn command your $PATH.

Build jar

./gradlew clean goJF check shadowJar

Usage Server

See help.

java -jar path/to/meghanada.jar --help
usage: meghanada server
    --gradle-version <arg>   set use gradle version
 -h,--help                   show help
 -l,--log <arg>              log file location. default:
                             /tmp/meghanada_server.log
    --output <arg>           output format (sexp, csv, json). default:
                             sexp
 -p,--port <arg>             set server port. default: 55555
 -r,--project <arg>          set project root path. default: current path
 -v,--verbose                show verbose message (DEBUG)
    --version                show version information
 -vv,--traceVerbose          show verbose message (TRACE)

Run Server

java -jar path/to/meghanada.jar

Recommend settings jvm args.

java -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Xverify:none -Xms256m -Dfile.encoding=UTF-8 -jar path/to/meghanada.jar

Meghanada-Server is required JDK 8 or later (not JRE). It used Compiler API.

Contributing

Contributions are extremely welcome!

Please check execute the following command before contributing. then please push PR to dev branch.

./gradlew clean goJF check

Customize project manually

  • Write .meghanada.conf on project root.

example:

# This is an annotated reference of the options that may be set in a
# .meghanada.conf file.
#

# Set JAVA_HOME
# Type: string
java-home = "/usr/lib/jvm/default

# Set java version
# Type: string
#
# It is same effect following code.
# System.setProperty("java.specification.version", val);
java-version = "1.8"

# Set source compatibility
# Type: string
compile-source = "1.8"

# Set target compatibility
# Type: string
compile-target = "1.8"

java11-javac-args = [
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED",
                 "--add-exports",
                 "jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED",
                 "--add-exports",
                 "java.management/sun.management=ALL-UNNAMED",
]

# Set dependencies file list (jar filepath)
# Type: string list
dependencies = ["/home/user/.m2/repository/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar", "/home/user/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar", "/home/user/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar" ... ]

# Set test dependencies file list (jar filepath)
# Type: string list
test-dependencies = ["/home/ma2/.m2/repository/junit/junit/4.12/junit-4.12.jar" ... ]

# Set source directories
# Type: string list
sources = ["src/main/java"]

# Set resource directories
# Type: string list
resources = ["src/main/resources"]

# Set classes output directory
# Type: string
output = "build/main/classes"

# Set test source directories
# Type: string list
test-sources = ["src/test/java"]

# Set testt resource directories
# Type: string list
test-resources = ["src/test/resources"]

# Set test classes output directory
# Type: string
test-output = "build/test/classes"

License

GPL v3, See LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].