Git Product home page Git Product logo

kotlin's Introduction

Kotlin Programming Language

Welcome to Kotlin! Some handy links:

Editing Kotlin

Building

To build this project, first time you try to build you need to run this (requires Apache Ant 1.8 or higher):

ant -f update_dependencies.xml

which will setup the dependencies on

  • intellij-core: is a part of command line compiler and contains only necessary APIs.
  • idea-full: is a full blown IntelliJ IDEA Community Edition to be used in former plugin module.

Then, you need to run

ant -f build.xml

which will build the binaries of the compiler and put them into the 'dist' directory.

Maven distribution is built separately, run

mvn package

from 'libraries' directory after building the compiler.

Working with the project in IDEA

The root kotlin project already has an IDEA project, you can just open it in IDEA.

Note though that you need a recent IDEA build (e.g. 12 EAP) which should not contain the Kotlin plugin!

If you want to have an IDEA installation without the Kotlin plugin which is separate to your default IDEA installation which has the Kotlin plugin see this document which describes how to have mutliple IDEA installs using different configurations and plugin directories.

From this root project there are Run/Debug Configurations for running IDEA or the Compiler Tests for example; so if you want to try out the latest greatest IDEA plugin

  • VCS -> Git -> Pull
  • Run IDEA
  • a child IDEA with the Kotlin plugin will then startup
  • you can now open the kotlin libraries project to then work with the various kotlin libraries etc.

Using a pre-built Kotlin IDEA plugin

You can download the latest Kotlin IDEA Plugin from the IDEA Plugin and Tests CI build

Or in a recent IDEA 12 EAP build install the Kotlin plugin:

Preferences -> Plugins -> Browse Repositories -> Manage Repositories... -> + to add a new repository URL

You can now open any Kotlin based projects. Its advisable you don't open the root kotlin project as that's intended to be used to build the kotlin compiler and plugin itself; instead open the kotlin libraries project

Contributing

We love contributions! There's lots to do on kotlin and on the standard library so why not chat with us on the forum about what you're interested in doing?

If you want to find some issues to start off with, try this query which should find all issues that are not resolved assigned to Kontributor.

Currently only committers can assign issues to themselves so just add a comment if you're starting work on it.

A nice gentle way to contribute would be to review the API docs and find classes or functions which are not documented very well and submit a patch.

In particular it'd be great if all functions included a nice example of how to use it such as for the filter() function on Collection. This is implemented using the @includeFunctionBody macro to include code from a test function. This serves as a double win; the API gets better documented with nice examples to help new users and the code gets more test coverage.

Also the JavaScript translation could really use your help. See the JavaScript contribution section for more details.

If you want to work on the compiler

The Kotlin compiler is currently all written in Java (we plan to port it to Kotlin later). So the easiest way to work on the compiler or IDEA plugin is

You can now run the various Run/Debug Configurations such as

  • IDEA
  • All Compiler Tests
  • All IDEA Plugin Tests

If you want to work on the Kotlin libraries

Then build via

cd libraries
mvn install

Submitting patches

The best way to submit a patch is to fork the project on github then send us a pull request via github.

If you create your own fork, it might help to enable rebase by default when you pull which will avoid your local repo having too many merge commits which will help keep your pull request simple and easy to apply.

Commit comments

If you include in your comment this text (where KT-1234 is the Issue ID in the Issue Tracker, the issue will get automatically marked as fixed.

#KT-1234 Fixed

kotlin's People

Contributors

abreslav avatar jstrachan avatar alextkachman avatar svtk avatar goodwinnk avatar yole avatar udalov avatar nataliaukhorskaya avatar ignatov avatar shafirov avatar shalupov avatar ptalanov avatar evgeny-goldin avatar frostman avatar alefas avatar develar avatar crazyproger avatar maxmanuylov avatar detouched avatar wlopata avatar ponomandr avatar chirino avatar zolotov avatar pechlambda avatar sapal avatar univerio avatar franckrasolo avatar asedunov avatar kfc35 avatar olegkunov avatar

Watchers

James Chang avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.