tese's Introduction
tese's People
tese's Issues
[Add] Organize Imports
Remover imports nao usados
Ordenar os restantes imports.
Improve Organize Imports
Do not compare the whole string, but substrings. because of the variants of requires and imports
Bug extract-function wrongly added args
when extracting a function with had (begin-edit-sequence) it added to the arguments of the function.
it was this piece of code:
(define (eta-two var-pos-lst)
;;this is done for only two args, for several do somehow a loop that for the nth element does cdr n-1 times and then car
(define anCall? #f)
(let* ([arg1 (car var-pos-lst)]
[arg2 (cadr var-pos-lst)]
[arg-pos-begin1 (var-arrow-start-pos-left arg1)]
[arg-pos-begin2 (var-arrow-start-pos-left arg2)]
[arg-pos-end1 (var-arrow-end-pos-right arg1)]
[arg-pos-end2 (var-arrow-end-pos-right arg2)])
(for ([var-arrow (in-list binding-aux)]) ;check if the arrow counts,
(begin ;Check if it's a call, to be a cal it need to be after all args once and before all args
;because the arrows received (aka the args) are increasing order by the first part of the arrow
;it is possible to do the (> arg1 arg2) like this
(when (and (> (var-arrow-end-pos-left var-arrow) arg-pos-begin2 arg-pos-begin1) ;order changed because how > works.
(< (var-arrow-end-pos-right var-arrow) arg-pos-end1 arg-pos-end2)) ; check if add func.
(begin
;(displayln "An call was found")
;(displayln (var-arrow-start-pos-left var-arrow))
(set! anCall? #t)
(set! calls (cons var-arrow calls))
)
)
))
(set! calls (remove-duplicates calls = #:key(lambda (x) (var-arrow-end-pos-left x))))
;(displayln (length calls))
;; write the reduction
;;get call
(if anCall?
(let ([call (send text get-text (var-arrow-end-pos-left (car calls)) (var-arrow-end-pos-right (car calls)))]
[edit-sequence-txts (list this)])
(displayln call)
;;start editiing
(begin-edit-sequence)
;(displayln "begin")
(send text begin-edit-sequence)
(set! edit-sequence-txts (cons text edit-sequence-txts))
;;Delete the text
(send text delete start-selection end-selection)
;;write call
(send text insert call start-selection)
;; end Editing
(for ([txt (in-list edit-sequence-txts)])
(send txt end-edit-sequence))
)
(void))
)
)
the let inside the if anCall?
Feedback information
Give information to the user about the Why that refactoring is impossible to do at the moment
Defines to/from lets
RollBack Refactoring
Useful when doing refactorings that can only be checked in the pos-conditions.
[Bug] Fix preconditions in the refactorings
Add prefix preconds are incorrect.
Organize imports.
Check the others.
Export functions to a file or new file. then add import
Lacking Feature: Check if it is possible to do the Eta reduction before
Do the checks before of the eta reduction.
If to When or Unless
When one branch of the if is (void) give a warning and suggest the When or unless depending on which branch is void
Refactoring Menu Design/User interaction
If all refactoring should be listed, currently there is a HUGE mess and it is not simple at all.
I need a way to fix this. A good way.
add module extensability
Missing eta-reduction commutative
Possibility of different order in args if operation is commutative.
Transform in Plugin
Plugins are easier to add to Drracket.
Add "name" to the refactoring menu
For example "Rename not-used" instead of only "Rename"
This makes the refactorings more similar to the rename already provided by DrRacket
Check Syntax
Have a way to continue evaluating the program even with errors in order to display more errors and to have a possibility to do refactoring with "incomplete" programs
eta-abstraction is incorrect
It is using arguments but it only should use the function to do the abstraction!
Rename in Require
Check what the rename does.
When renamming a Required name, rename in the require and not in the original file.
Refactoring Code-walker
Must do a refactoring to Code-walker, it is becoming too difficult to understand
Ifs Cascade to Cond and vice-versa
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.