Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
Python C JavaScript HTML C++ Perl Other
Latest commit 746c8bc Dec 1, 2016 @mitchell-as mitchell-as fix: mozilla: Applied upstream patch from Mozilla that fixes request …
…for "Osaka" font loading on OSX - fixes #2188

rn=

(integrated from the KomodoIDE master branch change 9090133 by Mitchell <mitchellb@activestate.com>)

Komodo/KomodoIDE@9090133
Permalink
Failed to load latest commit information.
bin Get cons to talk more about which file it failed to build. No functio… May 27, 2013
contrib scintilla: Ruby: Support new '%s' notation. Oct 4, 2016
mozilla fix: mozilla: Applied upstream patch from Mozilla that fixes request … Dec 1, 2016
prebuilt Docs: The Komodo help dialog has been removed in favour of the new do… Oct 15, 2015
src fix: editor: Fixed regression in selection position when changing ind… Nov 28, 2016
test tests: mock the notify module Mar 14, 2015
util kointegrate: Fix up integration messages Aug 2, 2016
.cvspass Initial import of Open Komodo sources from p4:Komodo-open/...@282397. Sep 24, 2007
.editorconfig Editor: Added support for .editorconfig - closes #271 Jun 8, 2015
.gitignore Added komodoproject files to ignore list Mar 6, 2015
.gitmodules submodules: Incorrect URL for focus mode Jul 14, 2015
BUILD.txt OSX: Cover Xcode 8 in readme and build.txt Oct 5, 2016
Blackfile.py Build: signtool cmds MUST use dblqoutes Nov 17, 2016
CONTRIBUTORS.txt add Defman to contributors Feb 13, 2015
Construct SDK: Share: Fixes for sdk. Oct 24, 2016
EULA.txt eula: word-wrap the eula Jun 23, 2010
ISSUE_TEMPLATE.md Further simplified the issue template Mar 8, 2016
LICENSE.txt MPL license file Oct 22, 2007
Makefile.py makefile import requires zope cache descriptors Nov 11, 2014
README.md Fix dead TOC link in README.md (#2153) Nov 16, 2016
bklocal.py builds: mod cmd to apply cert; handle pw protected cert Nov 14, 2016
screenshot.png Updated Screenshot to Komodo version 10 Sep 26, 2016

README.md

Komodo Edit

This readme explains how to get started building, using and developing with the Komodo Edit source base.

Whilst the main Komodo Edit source is hosted under this repository you may also want to check out the individual component/addon repositories under https://github.com/Komodo in case you only want to contribute to a specific component. This'll save you some time and hassle as you would not have to build the entire project.

Table of Contents

Screenshot

Screenshot

Download

You can download Komodo Edit here.

Feedback

There are several ways to get in contact with the Komodo devs:

Github: https://github.com/Komodo/KomodoEdit

Forums: http://forum.komodoide.com/

Bug Tracker: https://github.com/Komodo/KomodoEdit/issues

IRC: irc://irc.mozilla.org/#komodo

Mailing Lists: komodo-discuss & komodo-beta & komodo-announce

Building Komodo

Note that these are simplified steps of the building process, for a more in-depth guide check .

Building on Windows

Prerequisites

See http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites for more details on Windows build prerequisites. However, following the above steps is meant to be sufficient to get Komodo building.

Building Steps

  • Checkout Komodo Edit: git clone https://github.com/Komodo/KomodoEdit.git

  • Using the command line, enter your checkout directory and run:

    cd mozilla
    setenv-moz-msvc11.bat
    python build.py configure -k 10.10
    python build.py distclean all
    

    This will configure and build mozilla and can take anywhere from 30 minutes to several hours to complete (depending on your specs). For most modern machines it should be about an hour.

  • After mozilla is built successfully go back to the main repo directory and build komodo:

    cd ..
    set PATH=util\black;%PATH%
    bk configure -V 10.10.0-devel
    bk build
    

    This should take significantly less time than building Mozilla.

  • Once the build has completed you can simply run Komodo by executing bk run

Upon making any modifications to the source you will again have to run bk build, or simply bk build && bk run to quickly get back into Komodo. Subsequent builds should be a lot faster as much of the compiled data is cached.

Building on Mac and Linux

Mac Prerequisites

  • Python >=2.7 (but not Python 3.x yet). You can install ActivePython from here.

    If you prefer the Python builds from python.org should be sufficient as well.

  • Xcode 6.4. For 8.0 see below. You can get version 6.4 from the developer downloads site.

    • MacOSX10.10.sdk or older
    • If you have/need other versions of Xcode installed then you can use xcode-select to change the active Xcode:

      $ xcode-select -s /Path/To/Xcode\ 6.4.app/

  • Xcode Command Line Tools.

    Open the Xcode preferences, then in the Downloads tab, select and install the Command Line Tools.

  • MacPorts. (Note: Fink may work too but most of the build testing and instructions is done with MacPorts.)

  • autoconf v2.13. Once you have MacPorts installed you need just run sudo port install autoconf213

  • ensure you are using clang or gcc 4.2 (or higher)

See http://developer.mozilla.org/en/docs/Mac_OS_X_Build_Prerequisites for more details on Mac OS X build prerequisites. However, following the above steps is meant to be sufficient to get Komodo building.

Xcode 8 Prerequisites

Officially we do not support Xcode 8, however it is possible to build Komodo under Xcode 8 using a new extra steps.

  • Copy over the 10.8 and 10.9 SDK's from an older XCode install, they should be in: Xcode.app/Contents/Developer/Platforms/macOSX.platform/
  • Set MinimumSDKVersion to 10.9 in Xcode.app/Contents/Developer/Platforms/macOSX.platform/Info.plist
  • Ensure you are using ccache 3.1 (later versions will break)
  • Configure Mozilla with --options=disable-webrtc

Linux Prerequisites

  • Subversion if it's not already installed. Installing from package installers such as apt-get on Ubuntu or yum on Redhat/Fedora is ok.
Ubuntu

sudo apt-get build-dep firefox

Fedora

sudo yum install gcc-c++ patch gtk2-devel libIDL-devel libcurl-devel

Others

Building Steps

  • Checkout Komodo Edit: git clone https://github.com/Komodo/KomodoEdit.git

  • Using the terminal, enter your checkout directory and run:

    1) cd komodo/mozilla
    
    2) python build.py configure -k 10.10
    
    3) python build.py all
    
       or 
    
       python build.py distclean all
       (to delete and re-download Mozilla again)
    

    This will configure and build mozilla and can take anywhere from 30 minutes to several hours to complete (depending on your specs). For most modern machines it should be about an hour.

** Building with GCC 5.0 and higher **

If you are using GCC 5.0, the build may fail. If it does, there are changes that need to be made to two files. However, if you are running a clean build for the first time, you need to allow this part of the build to fail first. This is because the files are in the Mozilla part of the build which has to be downloaded first.

These files need to be changed:

1) /KomodoEdit/mozilla/build/moz3500-ko9.10/mozilla/configure.in

    @@ -7509,8 +7509,6 @@
    eval $(CXX="$CXX" HOST_CXX="$HOST_CXX" $PYTHON -m mozbuild.configure.libstdcxx)
    AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
    AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
+   CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+   HOST_CXXFLAGS="$HOST_CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
 fi

See bug #1153109 in Mozilla's bug database for more information.

2) /KomodoEdit/mozilla/build/moz3500-ko9.10/mozilla/dom/ipc/Blob.cpp

   @@ -3874,7 +3874,7 @@
   // Make sure we can't overflow.
   if (NS_WARN_IF(UINT64_MAX - aLength < aStart)) {
     ASSERT_UNLESS_FUZZING();
-    return nullptr;
+    return false;
   }

   ErrorResult errorResult;
   @@ -3883,7 +3883,7 @@

   if (NS_WARN_IF(aStart + aLength > blobLength)) {
     ASSERT_UNLESS_FUZZING();
-    return nullptr;
+    return false;
   }

See Porting to GCC 5 for more information.

  • After mozilla is built successfully, go back to the main repo directory and build komodo:

    cd ..
    export PATH=`pwd`/util/black:$PATH   # Komodo's "bk" build tool
    git submodule update --init
    git submodule update --remote
    bk configure -V 10.10.0-devel
    bk build
    

    This should take significantly less time than building Mozilla.

  • Once the build has completed you can simply run Komodo by executing bk run

Upon making any modifications to the source you will again have to run bk build, or simply bk build && bk run to quickly get back into Komodo. Subsequent builds should be a lot faster as much of the compiled data is cached.

Building with Docker

The easiest way to get started is to use our Docker image, this will basically provide you with a Ubuntu 12.04 based build of Komodo.

After cloning the repository simply navigate into {repo}/util/docker and check out ./docklet --help

To use the docker image you need to of course have Docker installed as well as have X11 forwarding enabled in your SSH client (should work by default on most linux distros).

Prepare Docker Image

  • Build the docker image: ./util/docker/docklet image
  • Start your container: ./util/docker/docklet start
  • SSH into your container to start working: ./util/docker/docklet ssh

Your project files will be mounted at /komodo/dev

NOTE - if you are updating from a previous version where your project files were at /root/komodo you will need to fix permissions on your Komodo project and profile folders. Ie:

chown -R <my-username>:<my-group> <my-project-location>
chown -R <my-username>:<my-group> ~/.komodoide

You will also need to redo your build (distclean mozilla and komodo).

Building Steps

Once your image is prepared you can follow the building steps for linux as described below. You will be running these from the docker container, so ssh into it using the command above and then run the commands from /komodo/dev

Running

Once your build is complete you exit out of the container (exit) and can then run Komodo with

./util/docker/docklet run

To rebuild Komodo (after making changes) and run it again you can use

./util/docker/docklet build run

If your changes are not being reflected you may need to clean your build, to do this use

./util/docker/docklet clean

Or to do it all at once (clean, build and run)

./util/docker/docklet clean build run

Building Complications

If any errors occur during your first built-time and it is not obvious how to fix the issue on your own please refer to the Feedback section on how to get in contact with us.

Note that if building complications arise after you updated your repo with the latest changes you might need to clear your local cache as it might be conflicting with the new changes, to do this run bk distclean before running your build steps.

Pro-Tips

Build a single piece

Sometimes bk build is too much and bk build quick isn't enough. If bk build quick doesn't appear to pickup your changes, try pointing bk build at the piece in question.

Example

bk build build/release/modules/places #this will build the places module only

NOTE: Do not rely on this method as bk build quick is faster and in some cases does some steps that the above example won't perform. Use it as a last ditch effort before you try bk distclean && bk build.