Bongani  Ngema

Bongani Ngema


MixUp: An Android App for Creating Photo Collages

Mix Up

An Android app for creating photo collages. With Mix Up, you can:

  • Create photo collages with up to 6 different photos.
  • Pinch, tap, and drag to zoom, add new photos, or resize them.
  • Customise border colors or disable it completely.
  • Share collages or save them to your device.


The best way to get to know the app is to start using it. Here's what you might see when you do:

Play Store

You can download MixUp on the Google Play store here.

Building from Source

You can build this app directly from the source. Enter the terminal command below to clone this repo:

git clone  


This app is compatible with SDK21+.

Download Details:

Author: GerardBradshaw
Source Code: 
License: Apache-2.0 license

#kotlin #editor #mvvm 

MixUp: An Android App for Creating Photo Collages
Rupert  Beatty

Rupert Beatty


AuroraEditor: A IDE Built By The Community, for The Community

Aurora Editor

Aurora Editor is a IDE built by the community, for the community, and written in Swift for the best native performance and feel for macOS.

It will support everything you could expect from an Xcode-inspired application, including deep integration with your selected git provider, project planning, and your favourite built in editor tools.



Developers should be able to use an editor that feels snappy and fast.

Most comparable editors are built on Electron, This is a huge disadvantage because it utilize a lot of unneccecary system resources. Electron requires a Chromium instance to run. This can mean massive performance losses and high RAM usage even for small apps built on it. Additionally, the overall code footprint is much larger and animations are slower. More frames are lost and things like window resizing feels laggy. Native apps are smooth as butter and utilize system resources much more efficiently for better performance and reliability.

Xcode is a great native editor for developers on Mac, but unfortunately it doesn't support creating a multitude of projects in different programming languages, and this is where Aurora Editor comes in. Aurora Editor wants to give developers the possibility of creating their desired projects in their desired language on a editor that is native and gives a similar experience, performance and feel than that of Xcode on Mac.

Included Repositories


Version Control Kit


AE Extension Kit




Join our community on Discord or Slack where we discuss and collaborate on all things of Aurora Editor. Don't be shy, jump right in and be part of the discussion!

Community Details

We would love to hear what kind of great ideas you as the community have. If you have an idea or a feature request for Aurora Editor feel free to add it to the Ideas Discussion.

If you created an awesome feature for Aurora Editor why not Show and tell, and celebrate with the community and developers of Aurora Editor.

When we have some awesome news or a big annoucement to make, we will be making it in the Annoucement Discussion. So stay tuned for any future annoucments.

Difference between AuroraEditor and CodeEdit

Please read to read about the difference between our projects.

Mental Health Awareness

We are aware how difficult and overwhelming it can be sometimes for developers when working on a big or small project. If you feel like you are getting overwhelmed when working on a certain feature or bug on Aurora Editor don't be afraid to let us know and we'll be able to help you out and takeover what you have been working on if you feel comfortable letting someone else do it. If you just feel the need to talk about certain issues feel free to talk about it in the Mental Health Channel or if just need advice on something ask in the Advice Channel.


Be part of the next revolution in code editing by contributing to the project. This is a community-led effort, so we welcome as many contributors who can help! Please read the following for more information.

Editor Localization

We want users to feel comfortable using Aurora Editor in their own speaking language, help us by translating Aurora Editor for you and the rest of the community.

Translate Aurora Editor Now

Download Details:

Author: AuroraEditor
Source Code: 
License: MIT license

#editor #macos #swift #ide 

AuroraEditor: A IDE Built By The Community, for The Community

Notepad-plus-plus: Notepad++ Official Repository

What is Notepad++ ?

Notepad++ is a free (free as in both "free speech" and "free beer") source code editor and Notepad replacement that supports several programming languages and natural languages. Running in the MS Windows environment, its use is governed by GPL License.

See the Notepad++ official site for more information.

Notepad++ Release Key

Since the release of version 7.6.5 Notepad++ is signed using GPG with the following key:

  • Signer: Notepad++
  • E-mail:
  • Key ID: 0x8D84F46E
  • Key fingerprint: 14BC E436 2749 B2B5 1F8C 7122 6C42 9F1D 8D84 F46E
  • Key type: RSA 4096/4096
  • Created: 2019-03-11
  • Expires: 2024-03-11

Supported OS

All the Windows systems still supported by Microsoft are supported by Notepad++. However, not all Notepad++ users can or want to use the newest system. Here is the Supported systems information you may need in case you are one of them.

Build Notepad++

Please follow build guide to build Notepad++ from source.


Contributions are welcome. Be mindful of our Contribution Rules to increase the likelihood of your contribution getting accepted.

Notepad++ Contributors

Download Details:

Author: Notepad-plus-plus
Source Code: 
License: View license

#cpluplus #notepad #editor #windows 

Notepad-plus-plus: Notepad++ Official Repository
Lawrence  Lesch

Lawrence Lesch


Pxt: Microsoft MakeCode (PXT - Programming EXperience toolkit)

Microsoft MakeCode

Microsoft MakeCode is based on the open source project Microsoft Programming Experience Toolkit (PXT). Microsoft MakeCode is the name in the user-facing editors, PXT is used in all the GitHub sources.

PXT is a framework for creating special-purpose programming experiences for beginners, especially focused on computer science education. PXT's underlying programming language is a subset of TypeScript (leaving out JavaScript dynamic features).

The main features of PXT are:

  • a Blockly-based code editor along with converter to the text format
  • a Monaco code editor that powers VS Code, editor's features are listed here.
  • extensibility support to define new blocks in TypeScript
  • an ARM Thumb machine code emitter
  • a command-line package manager

More info:

Examples of Editors built with MakeCode:


  • master is the active development branch, currently v3.* builds
  • v* is the servicing branch for v*.* builds

Running a target from localhost

Please follow the instructions here.

Linking a target to PXT

If you are modifying your own instance of PXT and want a target (such as pxt-microbit) to use your local version, cd to the directory of the target (pxt-microbit, in our example, which should be a directory sibling of pxt) and perform

pxt link ../pxt

If you have multiple checkouts of pxt, you can do the following:

  • run npm i in pxt and the target
  • in the target, run pxt link ..\some-other-pxt (you may need to update your CLI first by running npm install -g pxt)

If you run npm i afterwards (in either the target or pxt), you might need to repeat these steps.


First, install Node: minimum version 8.

To build the PXT command line tools:

npm install
npm run build

Then install the pxt command line tool (only need to do it once):

npm install -g pxt

After this you can run pxt from anywhere within the build tree.

To start the local web server, run pxt serve from within the root of an app target (e.g. pxt-microbit). PXT will open the editor in your default web browser.

If you are developing against pxt, you can run gulp watch from within the root of the pxt repository to watch for changes and rebuild.

gulp watch

If you are working on the CLI exclusively,

gulp watchCli


There are a number of custom icons (to use in addition to in the svgicons/ directory. These need to be 1000x1000px. Best start with an existing one. To see available icons go to http://localhost:3232/icons.html (this file, along with icons.css containing the generated WOFF icon font, is created during build).

If you're having trouble with display of the icon you created, try:

npm install -g svgo
svgo svgicons/myicon.svg

Documentation Highlighting

In the documentation, highlighting of code snippets uses highlight.js (hljs). Currently, the following languages are included:

  • TypeScript
  • Python
  • JavaScript
  • Markdown

If you need to add other languages or update existing ones, you can find the distribution at; select all the languages you want to include (including the ones above!), download and unzip, and finally copy over highlight.pack.js into webapp/public/highlight.js/.


The tests are located in the tests/ subdirectory and are a combination of node and browser tests. To execute them, run npm run test:all in the root directory.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Contact Us

Get in touch


MICROSOFT, the Microsoft Logo, and MAKECODE are registered trademarks of Microsoft Corporation. They can only be used for the purposes described in and in accordance with Microsoft’s Trademark and Brand guidelines published at If the use is not covered in Microsoft’s published guidelines or you are not sure, please consult your legal counsel or MakeCode team (

Download Details:

Author: microsoft
Source Code: 
License: MIT license

#typescript #javascript #editor #minecraft 

Pxt: Microsoft MakeCode (PXT - Programming EXperience toolkit)
Nigel  Uys

Nigel Uys


Helix: A Post-modern Modal Text Editor


A Kakoune / Neovim inspired editor, written in Rust.

The editing model is very heavily based on Kakoune; during development I found myself agreeing with most of Kakoune's design decisions.



  • Vim-like modal editing
  • Multiple selections
  • Built-in language server support
  • Smart, incremental syntax highlighting and code editing via tree-sitter

It's a terminal-based editor first, but I'd like to explore a custom renderer (similar to Emacs) in wgpu or skulpin.

Note: Only certain languages have indentation definitions at the moment. Check runtime/queries/<lang>/ for indents.scm.


Packages are available for various distributions (see Installation docs).

If you would like to build from source:

git clone
cd helix
cargo install --locked --path helix-term

This will install the hx binary to $HOME/.cargo/bin and build tree-sitter grammars in ./runtime/grammars.

Helix needs its runtime files so make sure to copy/symlink the runtime/ directory into the config directory (for example ~/.config/helix/runtime on Linux/macOS, or %AppData%/helix/runtime on Windows).

Windows (Cmd)xcopy /e /i runtime %AppData%\helix\runtime
Windows (PowerShell)xcopy /e /i runtime $Env:AppData\helix\runtime
Linux / macOSln -s $PWD/runtime ~/.config/helix/runtime

Starting with Windows Vista you can also create symbolic links on Windows. Note that this requires elevated privileges - i.e. PowerShell or Cmd must be run as administrator.


New-Item -ItemType SymbolicLink -Target "runtime" -Path "$Env:AppData\helix\runtime"


cd %appdata%\helix
mklink /D runtime "<helix-repo>\runtime"

The runtime location can be overridden via the HELIX_RUNTIME environment variable.

NOTE: if HELIX_RUNTIME is set prior to calling cargo install --locked --path helix-term, tree-sitter grammars will be built in $HELIX_RUNTIME/grammars.

If you plan on keeping the repo locally, an alternative to copying/symlinking runtime files is to set HELIX_RUNTIME=/path/to/helix/runtime (HELIX_RUNTIME=$PWD/runtime if you're in the helix repo directory).

Packages already solve this for you by wrapping the hx binary with a wrapper that sets the variable to the install dir.

NOTE: running via cargo also doesn't require setting explicit HELIX_RUNTIME path, it will automatically detect the runtime directory in the project root.

If you want to customize your languages.toml config, tree-sitter grammars may be manually fetched and built with hx --grammar fetch and hx --grammar build.

In order to use LSP features like auto-complete, you will need to install the appropriate Language Server for a language.

Packaging status

Adding Helix to your desktop environment

If installing from source, to use Helix in desktop environments that supports XDG desktop menu, including Gnome and KDE, copy the provided .desktop file to the correct folder:

cp contrib/Helix.desktop ~/.local/share/applications
cp contrib/helix.png ~/.local/share/icons

To use another terminal than the default, you will need to modify the .desktop file. For example, to use kitty:

sed -i "s|Exec=hx %F|Exec=kitty hx %F|g" ~/.local/share/applications/Helix.desktop
sed -i "s|Terminal=true|Terminal=false|g" ~/.local/share/applications/Helix.desktop


Helix can be installed on macOS through homebrew:

brew install helix


Contributing guidelines can be found here.

Getting help

Your question might already be answered on the FAQ.

Discuss the project on the community Matrix Space (make sure to join if you're on a client that doesn't support Matrix Spaces yet).


Thanks to @JakeHL for designing the logo!

For more information, see the website or documentation.

All shortcuts/keymaps can be found in the documentation on the website.


Download Details:

Author: Helix-editor
Source Code: 
License: MPL-2.0 license

#rust #vim #editor 

Helix: A Post-modern Modal Text Editor
Lawrence  Lesch

Lawrence Lesch


PythonVSCode: This Extension is Now Maintained in The Microsoft fork

Python extension for Visual Studio Code

A Visual Studio Code extension with rich support for the Python language (for all actively supported versions of the language: 2.7, >=3.6), including features such as IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer, snippets, and more!

Quick start

Set up your environment

Select your Python interpreter by clicking on the status bar

Configure the debugger through the Debug Activity Bar

Configure tests by running the Configure Tests command

Jupyter Notebook quick start

Open or create a Jupyter Notebook file (.ipynb) and start coding in our Notebook Editor!

For more information you can:

Useful commands

Open the Command Palette (Command+Shift+P on macOS and Ctrl+Shift+P on Windows/Linux) and type in one of the following commands:

Python: Select InterpreterSwitch between Python interpreters, versions, and environments.
Python: Start REPLStart an interactive Python REPL using the selected interpreter in the VS Code terminal.
Python: Run Python File in TerminalRuns the active Python file in the VS Code terminal. You can also run a Python file by right-clicking on the file and selecting Run Python File in Terminal.
Python: Select LinterSwitch from Pylint to Flake8 or other supported linters.
Format DocumentFormats code using the provided formatter in the settings.json file.
Python: Configure TestsSelect a test framework and configure it to display the Test Explorer.

To see all available Python commands, open the Command Palette and type Python.

Feature details

Learn more about the rich features of the Python extension:

IntelliSense: Edit your code with auto-completion, code navigation, syntax checking and more

Linting: Get additional code analysis with Pylint, Flake8 and more

Code formatting: Format your code with black, autopep or yapf

Debugging: Debug your Python scripts, web apps, remote or multi-threaded processes

Testing: Run and debug tests through the Test Explorer with unittest, pytest or nose

Jupyter Notebooks: Create and edit Jupyter Notebooks, add and run code cells, render plots, visualize variables through the variable explorer, visualize dataframes with the data viewer, and more

Environments: Automatically activate and switch between virtualenv, venv, pipenv, conda and pyenv environments

Refactoring: Restructure your Python code with variable extraction, method extraction and import sorting

Supported locales

The extension is available in multiple languages: de, en, es, fa, fr, it, ja, ko-kr, nl, pl, pt-br, ru, tr, zh-cn, zh-tw

Questions, issues, feature requests, and contributions

  • If you have a question about how to accomplish something with the extension, please ask on Stack Overflow
  • If you come across a problem with the extension, please file an issue
  • Contributions are always welcome! Please see our contributing guide for more details
  • Any and all feedback is appreciated and welcome!
    • If someone has already filed an issue that encompasses your feedback, please leave a 👍/👎 reaction on the issue
    • Otherwise please file a new issue
  • If you're interested in the development of the extension, you can read about our development process

Data and telemetry

The Microsoft Python Extension for Visual Studio Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. This extension respects the telemetry.enableTelemetry setting which you can learn more about at

Download Details:

Author: DonJayamanne
Source Code: 
License: MIT license

#typescript #python #testing #editor #terminal #jupyter #extract 

PythonVSCode: This Extension is Now Maintained in The Microsoft fork
Lawrence  Lesch

Lawrence Lesch


A Framework Helps You Quickly Build Cloud Or Desktop IDE Products


A framework helps you quickly build Cloud or Desktop IDE products.


English | 简体中文

⚡️ Quick Start

$ yarn install
$ yarn run init
$ yarn run download-extension  # Optional
$ yarn run start

By default, the tools/workspace folder in the project would be opened, or you can run the project by specifying the directory in the following way:

$ MY_WORKSPACE={local_path} yarn run start

Usually, you may still encounter some system-level environment dependencies. You can visit Development Environment Preparation to see how to install the corresponding environment dependencies.

🌟 Getting Started

Here you can find some of our example projects and templates:

📕 Documentation

For complete documentation:

📍 ReleaseNotes & BreakingChanges

You can see all the releasenotes and breaking changes here:

🔥 Contributing

Read through our Contributing Guidelines to learn about our submission process, coding rules and more.

🙋‍♀️ Want to Help?

Want to report a bug, contribute some code, or improve documentation? Excellent! Read up on our Contributing Guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

🧑‍💻 Needs some help?

Go to our issues or discussions to create a topic, it will be resolved as soon as we can.

Download Details:

Author: opensumi
Source Code: 
License: MIT license

#typescript #electron #editor #ide 

A Framework Helps You Quickly Build Cloud Or Desktop IDE Products
Lawrence  Lesch

Lawrence Lesch


Regex-vis: Regex Visualizer & Editor


🎨 Regex visualizer & editor




  • Regular expression visualizer
  • Visual editing regular expression
  • Testing regular expression



To deploy this project run

# install dependencies, use pnpm!
$ pnpm install

# serve with hot reload at localhost:3000
$ pnpm start


Download Details:

Author: Bowen7
Source Code: 
License: MIT license

#typescript #react #editor #reactjs 

Regex-vis: Regex Visualizer & Editor
Hunter  Krajcik

Hunter Krajcik


Apex-ui: Apex Monochrome Atom Theme UI


Apex monochrome Atom theme UI


$ apm install apex-ui


This variant:

Slim variant:


Download Details:

Author: Apex
Source Code: 
License: MIT license

#atom #theme #editor 

Apex-ui: Apex Monochrome Atom Theme UI
Rupert  Beatty

Rupert Beatty


macSVG: An open-source macOS app for designing HTML5 SVG

macSVG is a MIT-licensed open-source macOS app for designing HTML5 SVG 1.1 (Scalable Vector Graphics) art and animation.

macSVG Screenshot

macSVG can produce dynamic, high-quality graphics and animation for HTML5 web views that work on most major desktop and mobile platforms, including iOS, Android, macOS, Microsoft Windows and Linux.

macSVG uses the standard macOS WebKit framework for interactive editing and rendering of SVG documents, in addition to several Cocoa plug-in bundles for editing SVG elements and attributes.

The latest version of – code-signed with a registered Apple ID from the developer – is available for download at the Github project release page:

See the macSVG website for more documentation and release notes -


Apple’s free Xcode system is required to build the macOS application from the source code. Most of the application source code is written in Objective-C language, but a Swift language target has been added recently for a plug-in editor bundle. To build, open "macSVG.xcworkspace" in Xcode, set the build target to "macSVG Debug", build and run.

See the Developer page for more info:

Future project goals:

Migration to Swift language, and Swift Package Manager for importing third-party code.

We are monitoring the WebKit project concerning their plans to remove the Legacy WebView framework, which is used extensively in macSVG.

All trademarks are the property of their respective holders.

macSVG 1.2

July 16, 2022 – This release of macSVG 1.2 adds support for Macs with Apple Silicon M1/M2 processors.

Download Details:

Author: Dsward2
Source Code: 
License: View license

#swift #svg #editor #macos #mac 

macSVG: An open-source macOS app for designing HTML5 SVG
Hunter  Krajcik

Hunter Krajcik


Atom-transparency: How to Make Your Atom Editor Transparent

How To Achieve Atom Editor Transparency

In atom, there is no easy config (yet) to set window or background transparency as you would in iTerm or TextMate. Here's a straightforward guide on how to achieve transparent window awesomeness.

This has been tested on both macOS and Ubuntu 14.04 desktop, for Atom versions 1.0 up through 1.11.

Atom must be built from source with 2 additional lines of code. This makes Atom run as a frameless window which allows transparency to be enabled within Electron. After cloning or forking Atom, add the following to options:

frame: false
transparent: true

in src/browser/ (pre-v1.9) or src/main-process/ in versions 1.9+,

changing this:

options =
  show: false
  title: 'Atom'
  backgroundColor: "#fff"

to this:

options =
  frame: false
  transparent: true
  show: false
  title: 'Atom'
  #backgroundColor: "#fff"

Note backgroundColor is commented out.

Then run:

./script/clean && ./script/build

Refer to the official build guides for additional instructions if necessary. You may want to build a debian package, for example.

This can take awhile, but once complete, fire up Atom.

On linux, add an additional --enable-transparent-visuals flag while starting atom.

In Atom v1.7+, atom must be started with an additional --disable-gpu flag. Otherwise, there will be a lot of UI flickering.

Open up your editor LESS stylesheet (⌘-shift-p or ctrl-shift-p, then Application: Open Your Stylesheet), and add the following CSS. This is a basic guide - you can experiment with your own settings to get the effect you want. For example, to avoid text-on-text collisions in the autocomplete popups, I set atom-overlay > * to near-complete opacity.

html, html * {
  background: rgba(0, 0, 0, 0) !important;

atom-pane, atom-panel, atom-notification {
  background: rgba(0, 0, 0, 0.5) !important;

atom-overlay > * {
  background: rgba(0, 0, 0, 0.9) !important;

atom-text-editor::shadow {
  .cursor-line {
    background-color: rgba(0, 0, 0, 0.2) !important;
  .selection .region {
    background-color: rgba(0, 0, 0, 0.2) !important;
  .gutter {
    background-color: rgba(0, 0, 0, 0) !important;

In the CSS above, this works pre-v1.9:

html * {
  background: rgba(0, 0, 0, 0) !important;

but for v1.9+, this must be:

html, html * {
  background: rgba(0, 0, 0, 0) !important;

That's it--pretty simple!

Download Details:

Author: Transcranial
Source Code: 

#atom #editor 

Atom-transparency: How to Make Your Atom Editor Transparent
Hunter  Krajcik

Hunter Krajcik


Remote-ftp: FTP/FTPS/SFTP Client for

Remote FTP

FTP/FTPS/SFTP client for


Getting started

  1. Open an existing project or create a new one (File -> Open folder...)
  2. Open remote-ftp sidebar (Packages -> Remote FTP -> Toggle)
  3. Create a configuration file for your project (Packages -> Remote FTP -> Create (s)FTP config file)
  4. Once connected you should be seeing the content of the remote connection
  5. All basic commands (connect, disconnect, ...) are available from the sidebar context menu and the Command Palette

Tip: Create an ignore file to prevent your sensitive information from getting synced to your host (Packages -> Remote FTP -> Create ignore file)

Keyboard shortcuts

We all know that some handy commands can make our daily task easier, this are meant to do that, be aware that the action of any of them could overwrite or be over written by any other plugin.

ToggleCtrl + Alt + oCtrl + Alt + o
ConnectCtrl + Alt + cCtrl + Alt + c
DisconnectCtrl + Alt + dCtrl + Alt + d
UploadCtrl + Shift + uCmd + Shift + u

Package preferences

There are some settings hidden in the package preferences!

Screenshot of Settings

Configuration in project's .ftpconfig file

SFTP Configuration Options

    "protocol": "sftp",
    "host": "", // string - Hostname or IP address of the server. Default: 'localhost'
    "port": 22, // integer - Port number of the server. Default: 22
    "user": "user", // string - Username for authentication. Default: (none)
    "pass": "pass", // string - Password for password-based user authentication. Default: (none)
    "promptForPass": false, // boolean - Set to true for enable password/passphrase dialog. This will prevent from using cleartext password/passphrase in this config. Default: false
    "remote": "/", // try to use absolute paths starting with /
    "agent": "", // string - Path to ssh-agent's UNIX socket for ssh-agent-based user authentication. Linux/Mac users can set "env" as a value to use env SSH_AUTH_SOCK variable. Windows users: set to 'pageant' for authenticating with Pageant or (actual) path to a cygwin "UNIX socket." Default: (none)
    "privatekey": "", // string - Absolute path to the private key file (in OpenSSH format). Default: (none)
    "passphrase": "", // string - For an encrypted private key, this is the passphrase used to decrypt it. Default: (none)
    "hosthash": "", // string - 'md5' or 'sha1'. The host's key is hashed using this method and passed to the hostVerifier function. Default: (none)
    "ignorehost": true,
    "connTimeout": 10000, // integer - How long (in milliseconds) to wait for the SSH handshake to complete. Default: 10000
    "keepalive": 10000, // integer - How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable. Default: 10000
    "keyboardInteractive": false, // boolean - Set to true for enable verifyCode dialog. Keyboard interaction authentication mechanism. For example using Google Authentication (Multi factor)
    "keyboardInteractiveForPass": false, // boolean - Set to true for enable keyboard interaction and use pass options for password. No open dialog.
    "watch":[ // array - Paths to files, directories, or glob patterns that are watched and when edited outside of the atom editor are uploaded. Default : []
        "dist/stylesheets/main.css", // reference from the root of the project.
    "watchTimeout":500, // integer - The duration ( in milliseconds ) from when the file was last changed for the upload to begin.
    "filePermissions":"0644" // string - Permissions for uploaded files. WARNING: if this option is set, previously set permissions on the remote are overwritten!

FTP & FTPS Configuration Options

    "protocol": "ftp",
    "host": "", // string - The hostname or IP address of the FTP server. Default: 'localhost'
    "port": 21, // integer - The port of the FTP server. Default: 21
    "user": "user", // string - Username for authentication. Default: 'anonymous'
    "pass": "pass", // string - Password for authentication. Default: 'anonymous@'
    "promptForPass": false, // boolean - Set to true for enable password dialog. This will prevent from using cleartext password in this config. Default: false
    "remote": "/",
    "secure": false, // mixed - Set to true for both control and data connection encryption, 'control' for control connection encryption only, or 'implicit' for implicitly encrypted control connection (this mode is deprecated in modern times, but usually uses port 990) Default: false
    "secureOptions": null, // object - Additional options to be passed to tls.connect(). Default: (null) see
    "connTimeout": 10000, // integer - How long (in milliseconds) to wait for the control connection to be established. Default: 10000
    "pasvTimeout": 10000, // integer - How long (in milliseconds) to wait for a PASV data connection to be established. Default: 10000
    "keepalive": 10000, // integer - How often (in milliseconds) to send a 'dummy' (NOOP) command to keep the connection alive. Default: 10000\. If set to 0, keepalive is disabled.
    "watch":[ // array - Paths to files, directories, or glob patterns that are watched and when edited outside of the atom editor are uploaded. Default : []
        "dist/stylesheets/main.css", // reference from the root of the project.
    "watchTimeout":500 // integer - The duration ( in milliseconds ) from when the file was last changed for the upload to begin.

How to use .ftpignore?

This package use the ignore npm package. Which covers the operation of fully gitignore.

How use multiproject mode?

It is a very alpha / beta version. For the time being, only 1 project is supported at one time.

I'd like to support this project

Help us bring this project to the moon! Atom's rocket needs to get somewhere, right?

Contribute! I'll be happy to accept pull requests!

Bug hunting! Report them!

Feature request? Please let me know by filling an issue!

Share the love!

Contributors 📦

🥇 @mgrenier (Original owner)
🥈 @jpxd
🥉 @jimmaaay

@pinguinjkeke @miclaus @phawxby @wasikuss @garetmckinley @zxwef @MikeWillis @maxsbelt @kikoseijo @gevatter @morukutsu @wdacgrs @coolhome @samifouad @JamesCoyle @dhyegofernando @DeanmvSG @nopjmp @prugel @StephenNeate @dala00 @ghoben @inferst @dantman @UziTech @jackalstomper @Alhadis @QwertyZW @ASnow @evilangelmd @kadirgun @nbdamian @thorstenhirsch @ilessiivi @lioutikov @zlibra

Download Details:

Author: icetee
Source Code: 
License: MIT license

#atom #electron #javascript #editor 

Remote-ftp: FTP/FTPS/SFTP Client for
Rupert  Beatty

Rupert Beatty


Purely Native, Extensible Rich Text Editor for iOS, MacOS Catalyst App

Note: While Proton is already a very powerful and flexible framework, it is still in early stages of development. The APIs and public interfaces are still undergoing revisions and may introduce breaking changes with every version bump before reaching stable version 1.0.0.

Proton is a simple library that allows you to extend the behavior of a textview to add rich content that you always wanted. It provides simple API that allows you to extend the textView to include complex content like nested textViews or for that matter, any other UIView. In the simplest terms - It's what you always wanted UITextView to be.

Proton is designed keeping the following requirements in mind:

  • Be a standalone component with nothing that is specific to anything that is required in complex Text Editor. At it's most basic form, it should be able to be used as a UITextView and in most complex form, it should be able to provide rich text editing capabilities which are beyond just text formatting.
  • Should be extensible to support adding any view as content in the Editor such that it flows with the text.
  • Resizing of content views should automatically resize the containing Editor and support this to nth nesting level.
  • Should support extending the appearance of text as the content is typed - for e.g. changing text as it is typed using mark-up syntax and yet, not be aware of any of these requirements directly.
  • Should allow for working on multiple editors through the same toolbar based on where the focus is, and yet not be aware of the toolbar itself.
  • Respect the bounds of the container i.e. resize to change bounds when the device orientation changes.
  • Support a default font and styling like alignment and head indentation.
  • And of course, support all this on macOS Catalyst as well with almost no additional effort.

Core Concepts

At it's core, Proton constitutes of following key components:

  • EditorView: A substitute for UITextView that can be extended to add custom views including other EditorViews.
  • TextProcessor: Allows you to inject a behavior that is invoked as you type text in the EditorView. This can be used to change text, add/remove attributes like color or replace the added text with an entirely different text/view. For e.g. as you type markup syntax, you can convert the markup text into a formatted text by adding corresponding behavior to the TextProcessor.
  • EditorCommand: Allows you to add a behavior that can be invoked on demand on the given EditorView. For e.g. selecting some text and making it bold.
  • Attachment: A container capable of hosting a custom view including another EditorView. Attachment is a supercharged NSTextAttachment that can have automatic constraints applied on it to size it in various configurations like matching content, range of width, fixed width and so on. It also has helper functions to get it's range in it's container as well as to remove itself from the container.

A practical use case

The power of EditorView to host rich content is made possible by the use of Attachment which allows hosting any UIView in the EditorView. This is further enhanced by use of TextProcessor and EditorCommand to add interactive behavior to the editing experience.

Let's take an example of a Panel and see how that can be created in the EditorView. Following are the key requirements for a Panel:

  1. A text block that is indented and has a custom UI besides the Editor.
  2. Change height based on the content being typed.
  3. Have a different font color than the main text.
  4. Able to be inserted using a button.
  5. Able to be inserted by selecting text and clicking a button.
  6. Able to be inserted in a given Editor by use of >> char.
  7. Nice to have: delete using backspace key when empty similar to a Blockquote.

Panel view

The first thing that is required is to create a view that represents the Panel. Once we have created this view, we can add it to an attachment and insert it in the EditorView.

extension EditorContent.Name {
    static let panel = EditorContent.Name("panel")
class PanelView: UIView, BlockContent, EditorContentView {
    let container = UIView()
    let editor: EditorView
    let iconView = UIImageView()    
    var name: EditorContent.Name {
        return .panel
    override init(frame: CGRect) {
        self.editor = EditorView(frame: frame)
        super.init(frame: frame)    
    var textColor: UIColor {
        get { editor.textColor }
        set { editor.textColor = newValue }
    override var backgroundColor: UIColor? {
        get { container.backgroundColor }
        set {
            container.backgroundColor = newValue
            editor.backgroundColor = newValue
    private func setup() {
        // setup view by creating required constraints

As the Panel contains an Editor inside itself, the height will automatically change based on the content as it is typed in. To restrict the height to a given maximum value, an absolute size or autolayout constraint may be used.

Using the textColor property, the default font color may be changed.

For the ability to add Panel to the Editor using a button, we can make use of EditorCommand. A Command can be executed on a given EditorView or via CommandExecutor that automatically takes care of executing the command on the focussed EditorView. To insert an EditorView inside another, we need to first create an Attachment and then used a Command to add to the desired position:

class PanelAttachment: Attachment {
    var view: PanelView 
    init(frame: CGRect) {
        view = PanelView(frame: frame)
        super.init(view, size: .fullWidth)
        view.delegate = self
        view.boundsObserver = self
    var attributedText: NSAttributedString {
        get { view.attributedText }
        set { view.attributedText = newValue }
class PanelCommand: EditorCommand {
    func execute(on editor: EditorView) {
        let selectedText = editor.selectedText  
        let attachment = PanelAttachment(frame: .zero)
        attachment.selectBeforeDelete = true
        editor.insertAttachment(in: editor.selectedRange, attachment: attachment)   
        let panel = attachment.view
        panel.editor.maxHeight = 300
        panel.editor.replaceCharacters(in: .zero, with: selectedText)
        panel.editor.selectedRange = panel.editor.textEndRange

The code in PanelCommand.execute reads the selectedText from editor and sets it back in panel.editor. This makes it possible to take the selected text from main editor, wrap it in a panel and then insert the panel in the main editor replacing the selected text.

To allow insertion of a Panel using a shortcut text input instead of clicking a button, you can use a TextProcessor:

class PanelTextProcessor: TextProcessing {  
 private let trigger = ">> "
 var name: String {
     return "PanelTextProcessor"
 var priority: TextProcessingPriority {
     return .medium
 func process(editor: EditorView, range editedRange: NSRange, changeInLength delta: Int, processed: inout Bool) {
     let line = editor.currentLine
     guard line.text.string == trigger else {
     let attachment = PanelAttachment(frame: .zero)
     attachment.selectBeforeDelete = true        
     editor.insertAttachment(in: line.range, attachment: attachment)

For a requirement like deleting the Panel when backspace is tapped at index 0 on an empty Panel, EdtiorViewDelegate may be utilized:

In the code above, PanelViewDelegate is acting as a passthrough for EditorViewDelegate for the Editor inside the PanelView.

Checkout the complete code in the ExamplesApp.

extension PanelAttachment: PanelViewDelegate {

func panel(_ panel: PanelView, didReceiveKey key: EditorKey, at range: NSRange, handled: inout Bool) {
    if key == .backspace, range == .zero, panel.editor.attributedText.string.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
        handled = true

Example usages

Changing text as it is typed using custom TextProcessor:

  1. Markup text processor

Adding attributes as it is typed using custom TextProcessor:

  1. Mentions text processor

Nested editors

  1. Nested editors

Panel from existing text:

  1. Panel from text

Relaying attributes to editor contained in an attachment:

  1. Relay attributes

Highlighting using custom command in Editor:

  1. Highlight in Renderer

Find text and scroll in Editor:

  1. Find in Renderer

Learn more

  • Proton API reference is available here.
  • For sample code, including the ones for examples shown above, please refer to the Example app.

Questions and feature requests

Feel free to create issues in github should you have any questions or feature requests. While Proton is created as a side project, I'll endeavour to respond to your issues at earliest possible.

Download Details:

Author: Rajdeep
Source Code: 
License: View license

#swift #ios #native #editor 

Purely Native, Extensible Rich Text Editor for iOS, MacOS Catalyst App

16 the Amazing Python IDEs and Code Editors

Python is one of the most popular programming languages in the world. But it can be challenging to learn if you don’t know which IDE or code editor to use. 

In this article, I share my experience with many different Python IDEs and Code Editors, so you can decide which one will work best for your needs! 


The first python IDE I tried was PyCharm, developed by JetBrains and available for both PC and Mac users. The best part about this python code editor is its features! It comes with everything you could ever need to create python applications. For example, refactoring tools, unit testing capabilities, version control integrations (git and svn), an integrated debugger that supports PDB files, and the option to configure it for your python interpreter of choice (i.e., python 2 or python 3). 

What sets PyCharm apart from the other python code editors on this list is its user-friendly interface and support for web development frameworks like Django and Flask. The only downside to PyCharm is that it isn’t as lightweight as I would like, which can slow down your python IDE experience.


Another python IDE I tried was Spyder, developed by the python community and available for Windows users. The best part about this python code editor is its lightweight design (it’s only 3MB). That lets you open it up quickly and start writing python code right away! 

It comes with all standard python IDE features like auto-completion, syntax highlighting, debugger support, and web development frameworks like Django and Flask. 

However, the downsides to Spyder are that: - its user interface can be difficult to learn at first due to its lack of intuitiveness - it doesn’t support other operating systems like Mac and Windows.


A light python coding environment for python programming is IDLE. It has shell abilities, auto-completion support, online help, and debugging. It can run python scripts without opening a new window or tab.

It’s useful for people who don’t need all the bells and whistles of more advanced python ide. I’ve personally used it only on Windows systems. Still, I plan to switch over completely to this python programming environment because of its simplicity!


Another python IDE I tried was Eclipse, a java-based python IDE that runs on python 2.5 or up. Eclipse is an open-source program that provides python developers with a text editor, python interpreter, interface to workspace python libraries, debuggers for python code, supports python debugging in remote systems, and has drag-and-drop features when it comes to importing code into your IDE workspace.   


Another python IDE I tried was PyScripter, developed by the python community and available for both PC and Mac users. The best part about this python code editor is its lightweight design, and you can download this python IDE for free. 

The python ide offered many features like python code indentation, syntax checking, code folding, completion, and visual debugging. I was really impressed when I tried to debug python code in this python IDE. Launching my script inside the PyScripter python debugger showed me the current line number where the problem occurred. 

It is a good python IDE, but it does not support inline editing like sublime text python editor. That allows quick modifications without leaving the comfort of your keyboard.


Another python IDE I tried was Coda, which is developed by Panic and available for Mac users. The best part about this python code editor is its feature-rich interface that makes writing python code a breeze! It comes with syntax highlighting, bracket matching, a python console, and a file browser.

I initially found it tough to get used to the python IDE. That’s because of its different approach from all other python code editors I have come across so far. Still, I totally got into it sometime later and loved it! They have also released some exciting features such as Automatic Backups, which will automatically save any unsaved work if the python IDE crashes.

If you are one of those programmers who prefer using Macs to Windows PCs instead, then Coda might be for you!

The downside to Coda is its price tag ($99) since it’s not free.

Visual Studio Code

Another python IDE I tried was Visual Studio Code, which is developed by Microsoft and available for PC, Linux, and Mac users. The best part about this python code editor is its feature-rich interface that makes writing python code a breeze! It comes with syntax highlighting, debugger support for both python 2 and python 3, Git integration, web development frameworks like Django and Flask. And best of all, it is free!

I was impressed when I tried python debugging in Visual Studio Code python IDE. It showed me the current line number where the problem occurred. It provided some extra information regarding my python code’s execution process. The python ide also comes with a command bar that offers several features like navigating back to previous files/folders, deleting, etc.

Visual Studio Code is an open-source python editor for programmers working on Windows, Mac, or Linux.


Another python IDE I tried was WingIDE, which is developed by Wingware and available for Mac users. The best part about this python code editor is its feature-rich interface that makes writing python code a breeze!

WingIDE runs on any python distribution (pip installed). It automatically checks your code as you type and alerts you to errors…

If you use Emacs or Vim, one of the other best python IDEs will be perfect for you. If not, then go with WingIDE; it takes less time to learn and offers many features.


The python IDE I use the most is Jupyter Notebook, developed by the python community and available even for Mac users (through Anaconda). It’s basically a command-line python IDE that lets you start writing python code right away! 

The best part about this python code editor is its portability. It can run on almost any operating system, including Windows, Mac, Linux, BSD, etc., making it ideal for python development on the go. 

The downsides to using Jupyter Notebook:  - it doesn’t support web frameworks like Django or Flask - it doesn’t have python debugging capabilities, so you’ll have to use a separate python IDE if you want to debug your code.

Komodo Edit

Another python IDE I tried was Komodo Edit, which is developed by ActiveState and available for Windows users. The best part about this python code editor is its feature-rich interface that makes writing python code a breeze! 

Although not as powerful as PyCharm, Komodo Edit is an editor that python coders will love!

Komodo Edit supports python 2.7 and 3.4 with syntax highlighting for 30+ languages. It also has some unique features like “Auto Indent” to help python programmers write better code more quickly. However, what’s excellent about Komodo Edit is its cross-platform design.  So python coders can work on Windows, Mac OS X, or Linux without worrying about compatibility issues.

Suppose you are a python novice who’s learning the ropes of coding in python. In that case, I’d recommend Komodo Edit as your first python IDE due to its simple UI and detailed documentation. 


Another python IDE I tried was Thonny, developed by the python community and available for all platform users. The best part about this python code editor is that it comes with python3.6 installed by default. So you can develop python programs right away without installing python in your system.

Despite the ease of use, I found this IDE didn’t have code completion options like PyCharm mentioned above. But suppose you are a python beginner and prefer simple things. In that case, Thonny is good enough for writing python scripts or running them locally on your computer. 

If you want to do anything more advanced than that, please don’t use this python ide - there’s no sense in using an IDE when you need more power!

Sublime Text

Another python IDE I tried was Sublime Text, which is developed by the python community and available for Windows and Mac users. The best part about this python code editor is that it’s free. 

Sublime Text is a great python text editor, but it lacks many python IDE features such as debugging and built-in quick help. I recommend python coders to use this python IDE if they want a lightweight python code editor that allows them to work with other features like web frameworks and text editors.


Another python IDE I tried was Emacs, which is developed by the python community and available for any operating system (including Mac).  

Emacs is a pretty powerful python IDE with many features. However, it’s pretty hard to master Emacs because of its steep learning curve. There are hundreds of Emacs packages to choose only desired ones that will increase your productivity without any problems.

Using Emacs, I recommend you Mastering Emacs by Mark Lutz. This book helps to improve python coding and python IDE skills.


Another python IDE I tried was PyDev, which is developed by the python community and available for both Windows and Linux users. The best part about this python code editor is its lightweight design (it’s only 6MB). That lets you open it up quickly and start writing python code right away! 

It comes with all standard python IDE features like auto-completion, syntax highlighting, debugger support, and web development frameworks like Django and Flask. However, the downsides to PyDev are that its user interface can be confusing at first due to its lack of intuitiveness.


Another python IDE I tried was Vim, a python code editor that runs in the terminal and is available for both Windows and Linux users. 

The best part about this python code editor is the lightweight design that makes it very efficient. It also means that it isn’t as feature-rich as some Python IDEs. However, suppose you’re just looking for a simple python IDE without extra features. In that case, Vim is definitely right for you!


The newest python code editor on this list is Atom, developed by GitHub and available for PC and Mac users. Text-based with a myriad of features and settings to dig through! After using the other python editors listed here, I was skeptical about trying out another one because they all seem similar. 

But after giving Atom a try, I realized how much more user-friendly it was than its competitors. Make almost everything you need easy to find or access via keyboard shortcuts (instead of clicking-through menus). 

For python beginners: Atom is a free and open-source text editor available for Mac and PC users. It has most of the features you would expect in an advanced python editor and keeps its interface clean and easy to use. 

If you need help with Python development, please contact us! We have a team of experienced developers that will be happy to help you!

Original article source at:

#python #code #editor 

16 the Amazing Python IDEs and Code Editors