Project Description
Designed to bring Code Refactoring capabilities to the F# Language in Visual Studio 2010.

"Code refactoring is the process of changing a computer program's source code without modifying its external functional behavior in order to improve some of the nonfunctional attributes of the software. Advantages include improved code readability and reduced complexity to improve the maintainability of the source code, as well as a more expressive internal architecture or object model to improve extensibility." source: Wikipedia

Architecture

  • Lexer, Parser and Type Inference (now using Microsoft F# Compiler Sources)
  • Abstract Syntax Tree
  • Highlight Usages
  • Rename
  • Extract definition (todo)
  • ....


Highlight Usages
highlightUsages.gif highlightUsages2.gif

Videos New
FSharpRefactoring Highlight Usages on Vimeo

FSharpRefactoring Highlight Usages on YouTube

FSharpRefactoring Highlight Usages (Tutorial Project) on YouTube

FSharpRefactoring Rename on YouTube

FSharpRefactoring Rename (Tutorial Project) on YouTube

 

References
OO Refactoring Catalog
http://www.refactoring.com/catalog/index.html by Martin Fowler

Refactoring Functional Programs
http://www.cs.kent.ac.uk/projects/refactor-fp/publications/AFP04.pdf by Simon Thompson

Refactoring Haskell Programs
http://www.cs.kent.ac.uk/projects/refactor-fp/publications/Huiqing-thesis.pdf by Huiqing Li

Tool support for Refactoring Haskell Programs
http://www.cs.kent.ac.uk/projects/refactor-fp/publications/ChrisThesis.pdf by Christopher Mark Brown

Hindley-Milner Type Inference
http://en.wikipedia.org/wiki/Type_inference#Hindley.E2.80.93Milner_type_inference_algorithm by Wikipedia

Last edited May 6, 2013 at 9:53 PM by holoed, version 38