refactor cli
refactor cli add repl plugin
Description
Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.
Fixes #(issue_no)
Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
- [ ] Documentation update
Checklist:
- [x] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation.
- [ ] My changes generate no new warnings.
- [ ] I have added tests/screenshots (if any) that prove my fix is effective or that my feature works.
- [ ] I have tested the tests implicated (if any) by my own code and they pass (
make testorctest -VV -R <test-name>). - [ ] If my change is significant or breaking, I have passed all tests with
./docker-compose.sh build &> outputand attached the output. - [ ] I have tested my code with
OPTION_BUILD_SANITIZERor./docker-compose.sh test &> outputandOPTION_TEST_MEMORYCHECK. - [ ] I have tested with
Helgrindin case my code works with threading. - [ ] I have run
make clang-formatin order to format my code and my code follows the style guidelines.
If you are unclear about any of the above checks, have a look at our documentation here.
This pull request introduces 3 alerts when merging b73ad488c8470ff72e76a86820cb4d4890bc6d84 into c5d4f3c0ec33a719fea674351290ffc71518b853 - view on LGTM.com
new alerts:
- 1 for Missing variable declaration
- 1 for Unused variable, import, function or class
- 1 for Unknown directive
I have implemented a full refactor including plugins and a different architecture. There is a lot of functionality not implemented yet like command parsing, and we can still take parts from your code to finalize the CLI, that's why I am not going to close this PR yet.
Here's the PR I have done: https://github.com/metacall/core/pull/482
This is finally finished... this is the last commit: https://github.com/metacall/core/commit/d18f13062f948ad14e5f90cdf9f2736b4f929f27
It still requires documentation about how to create new plugins in other languages (js for example).