Giter VIP home page Giter VIP logo

snake_code's Introduction

Snake Code (org.purplegraphite.code)

Effortlessly programming on mobile

Flutter analysis

Snake Code is just a simple source code editor. This project's main target platform is Android.

The application is written in dart (uses Flutter UI Toolkit).

Objective

  • An easy to use source code editor
  • Open directories/files as projects
  • Syntax highlighting
  • Basic editing tools for ex. Find & replace

Structure

├── org.purplegraphite.code
└── packages
    └── creamy_field

org.purplegraphite.code

The main flutter project code resides here.

packages

All the internal and general purpose packages used in org.purplegraphite.code is here.

  • creamy_field

    The package provides components & widgets with rich text, custom selection toolbar & syntax highlight support.


A brief information about the project

Problem this tries to solves

This project aims to help make programming on mobile devices easier.

It will focus on being flexible in functionality by providing various in-app settings for users and allowing support for extensions in future. Extensions built by us or others can improve suggestions, performance, theming, etc.

It helps in modifying a source code of a project simple by allowing to edit multiple files at once in tabs and switching between them quicker in a nice interface.

It'll include a file directory explorer for faster exploration of files. Simple to use yet powerful search, replace, and other tools to aid in writing.

Some functionalities

  1. A project explorer to help browsing files a user needs faster and less messy. Existing similar applications show all files in a project as an expandable tile which makes the list too long & wide making it difficult to distinguish between files of one folder with another folder.
  2. A search tool to globally search for files with names, or files with a text equal or similar to the searched query.
  3. A tab switcher to change between current tabs on screen quickly similar to a web browser.
  4. Flexibility in functionality with a lot of options in settings and support for extensions to change themes, syntax highlighting, way of debugging. The app will also be flexible in importing a project and exporting/sharing it in a portable but fast format.

Users

The type of users which may use this app.

  1. Users who don't have money to buy a computer for an indefinite amount of time but have a mobile device available.
  2. Programmers who need to edit a project on a mobile device because they are commuting in a transport or due to temporary unavailability of a computer.
  3. Users who just want to quickly run and share a small program with each other in groups.
  4. Users who don’t want to waste money on buying a computer if the app is able to run projects on mobile.

Users (likely students) from an economically weak background wouldn’t be able to afford a full fledged computer but could have access to a mobile. These users can use this app and try to achieve relevant skills by learning and developing programs. My app will try to not let an unavailability of a computer for an indefinite amount of time be an obstacle for these users.

Developer goals for this app's design

  1. Build community for extension development for making this app more functionally flexible and vast.
  2. Keep this app as an economically cheap alternative for program development for users.
  3. A medium to quickly run code and share it with other users.
  4. Fast in its functions to improve user’s productivity.

snake_code's People

Contributors

predatorx7 avatar sergeshkurko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

snake_code's Issues

Can't build app with flutter 2.2.1

Can't build app with flutter 2.2.1

image

../../../Development/flutter/.pub-cache/hosted/pub.dartlang.org/creamy_field-0.4.0/lib/src/text_tools/creamy_editing_controller.dart:209:12: Error: The method 'CreamyEditingController.buildTextSpan' has fewer named arguments than those of overridden method 'TextEditingController.buildTextSpan'.
  TextSpan buildTextSpan({TextStyle? style, required bool withComposing}) {
           ^
../../../Development/flutter/packages/flutter/lib/src/widgets/editable_text.dart:192:12: Context: This is the overridden method ('buildTextSpan').
  TextSpan buildTextSpan({required BuildContext context, TextStyle? style , required bool withComposing}) {

           ^
../../../Development/flutter/.pub-cache/hosted/pub.dartlang.org/creamy_field-0.4.0/lib/src/text_tools/creamy_editing_controller.dart:209:12: Error: The method 'CreamyEditingController.buildTextSpan' doesn't have the named parameter 'context' of overridden method 'TextEditingController.buildTextSpan'.
  TextSpan buildTextSpan({TextStyle? style, required bool withComposing}) {
           ^
../../../Development/flutter/packages/flutter/lib/src/widgets/editable_text.dart:192:12: Context: This is the overridden method ('buildTextSpan').
  TextSpan buildTextSpan({required BuildContext context, TextStyle? style , required bool withComposing}) {

           ^

Command PhaseScriptExecution failed with a nonzero exit code

onBackpress and onEnterPress is not fired

Prerequisites

Description

The onBackPress and onEnterPress methods aren't fired when backspace or enter key is pressed.

Steps to Reproduce

  1. Implement methods in SyntaxHighlighter class
  2. Press backspace or enter in CreamyField
  3. None of the events get triggered

Expected behavior:

The callback methods should be fired.

Reproduces how often:

100%

Versions

0.3.2

Additional Information

Error: No named parameter with the name 'nullOk'.

I'm facing this error when I tried to run the creamy_text_field

Launching lib\main.dart on SM A515F in debug mode...
lib\main.dart:1
/C:/flutter/.pub-cache/hosted/pub.dartlang.org/creamy_field-0.3.3/lib/src/creamy_text_field.dart:816:56: Error: No named parameter with the name 'nullOk'.
    final NavigationMode mode = MediaQuery.of(context, nullOk: true)?.navigationMode ?? NavigationMode.traditional;
                                                       ^^^^^^
/C:/flutter/packages/flutter/lib/src/widgets/media_query.dart:818:25: Context: Found this candidate, but the arguments don't match.
  static MediaQueryData of(BuildContext context) {
                        ^^
3

FAILURE: Build failed with an exception.

* Where:
Script 'C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 19s
Exception: Gradle task assembleDebug failed with exit code 1

and the flutter doctor result

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 1.26.0-13.0.pre.120, on Microsoft Windows [Version 10.0.19042.746], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Build Tools 2019 16.8.3)
[√] Android Studio (version 4.1.0)
[√] IntelliJ IDEA Community Edition (version 2020.3)
[√] VS Code (version 1.52.1)      
[√] Connected device (4 available)

• No issues found!

Flutter stable 1.20 support problem

Error code:

Launching lib/main.dart on Mi 9T Pro in debug mode...
../../.pub-cache/hosted/pub.dartlang.org/creamy_field-0.3.1/lib/src/rich_editable_text.dart:903:7: Error: The non-abstract class 'RichEditableTextState' is missing implementations for these members:
 - TextInputClient.currentAutofillScope
 - TextInputClient.showAutocorrectionPromptRect
Try to either
 - provide an implementation,
 - inherit an implementation from a superclass or mixin,
 - mark the class as abstract, or
 - provide a 'noSuchMethod' implementation.

class RichEditableTextState extends State<RichEditableText>
      ^^^^^^^^^^^^^^^^^^^^^
../../development/flutter/packages/flutter/lib/src/services/text_input.dart:790:21: Context: 'TextInputClient.currentAutofillScope' is defined here.
  AutofillScope get currentAutofillScope;
                    ^^^^^^^^^^^^^^^^^^^^
../../development/flutter/packages/flutter/lib/src/services/text_input.dart:805:8: Context: 'TextInputClient.showAutocorrectionPromptRect' is defined here.
  void showAutocorrectionPromptRect(int start, int end);
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dartlang.org/creamy_field-0.3.1/lib/src/rich_editable_text.dart:1895:29: Error: Getter not found: 'obscuringCharacter'.
      text = RenderEditable.obscuringCharacter * text.length;
                            ^^^^^^^^^^^^^^^^^^


FAILURE: Build failed with an exception.

* Where:
Script '/Users/sshkurko/development/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 896

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command '/Users/sshkurko/development/flutter/bin/flutter'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 28s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

Tab White Space issue.

While using the Rich Text Editor I found out that when you try to use "\t" or Tab the line indicator does not follow the white spaces.
Screenshot_1594911280

Special themes for system dark theme

Now themes does not work

TextEditingController controller = CreamyEditingController(
        syntaxHighlighter: CreamySyntaxHighlighter(
        language: LanguageType.dart,
        theme: HighlightedThemeType.githubTheme, // <---
    ),
);

but supports system dark/light theme

maybe has the meaning add darkTheme filed like a MaterialApp theme

for example:

TextEditingController controller = CreamyEditingController(
        syntaxHighlighter: CreamySyntaxHighlighter(
        language: LanguageType.dart,

        theme: HighlightedThemeType.githubTheme, // <--- for light theme
        darkTheme: HighlightedThemeType.anyDarkTheme, // <--- for dark theme
    ),
);

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.